Laden...

Forenbeiträge von Khartak Ingesamt 55 Beiträge

27.02.2008 - 23:13 Uhr

Liebe Community...

Ich nehme den BackupManager vorerst aus dem rennen! Sorry.

Grund ist da es noch viel mehr zu tun gibt als ich gedacht habe. Ich muss als erstes mal das Feature "Automatische Sicherung" komplett überarbeiten. Sowie einige andere Grundlegende Sachen bevor ich immer mehr Features reinklatsche die dann mit anderen Features nicht klarkommen und es zu Fehlern kommt.

Warum muss ich alles überarbeiten?
Ganz einfach. Ich habe mit dem Backup Manager angefangen als ich noch nich so viel Erfahrung mit dem .NET Framework hatte. Ich habe nach und nach vorhandene Codezeilen durch Moderneren Code ersetzt und wurde immer mehr Objektorientierter und der Code wurde an einigen Stellen immer professioneller. Wie z.B. Serialisierung statt INI Dateien (nur ein Beispiel von vielen). Aber der gesamte Quellcode umfasst mehrere tausend Zeilen Code. Wobei es an vielen Stellen weniger Code wurde durch starke optimierung aber an anderen Stellen immer mehr durch neue Features. Features die ich unbedingt haben wollte aber nich vorher die alte Last beseitigen wollte, so nach dem Motto hauptsache haben.

Dann hab ich jetzt noch mit Vista zu kämpfen. Dieses verdammte UAC macht mir momentan echt zu schaffen. Von wegen kein Zugriff auf C:\ etc. Also ich persönlich nutze kein UAC.

Aber das Backup Programm ist nun mal mein größtes Projekt und ich möchte es ungerne aufgeben. Zumal noch viele Features schlange stehen die das Programm noch wertvoller machen sollen:
-Verschlüsselung
-Komprimierung.
-Netzwerkunterstützung (FTP, Windows Netzwerk)
-Remotecontrol (mit Server)
-Effizientes TimerManagement für automatische Sicherungen
-Projektmanager

Das Programm soll auch in Zukunft Freeware sein. Haworx erstellt ausschließlich Freeware Programme 😉

Nochmal zu Erinnerung. Das Projekt ist ein Ein-Mann-Projekt. Aber ihr könnt helfen. Ich werde nämlich BETA-Versionen zur Verfügung stellen. Ihr könnt mir helfen indem ihr diese einfach ausführlich testet und diverse Szenarien erstellt in dem Fehler provoziert werden. Und dann schickt ihr mir eure Erfahrungen und Fehlerberichte per E-Mail zu. Und zwar an diese extra dafür eingerichtete E-Mail Adresse:
Eure hilfe ist am Wertvollsten da das Programm dann auf vielen verschiedenen Rechnern getestet wird. Und jedes Windows ist anders. Das wissen wir ja alle 😉

Ich erstelle für den aktuellen Release eine Setup Datei. Danach folgen nur noch BETA Versionen ohne Setup. Ich werde dann aus den BETA Versionen die Dateiassoziierung für .mbm un d.itm und alle anderen Explorererweiterungen entfernen so das ihr die BETA Version und die aktuelle Normale Version parallel betreiben könnt. Ihr müsst dann nur in der BETA Version die Projektdateien mit denen ihr testet manuell per "Projekt öffnen" öffnen.

Die BETA Version könnt ihr dann als Extra RAR Datei herunterladen. Darin befinden sich dann immer 2 Dateien. Einmal das Programm selber und dann eine PDB Datei die zur Fehlerdiagnostik benötigt wird. Mit dieser Datei bekommt ihr dann detailiertere Fehlermeldungen falls welche auftreten. Diese Meldungen könnt ihr mir dann per E-Mail zuschicken. Ob von meinem eigenen Fehlerdialog oder durch eine UnhandledException Meldung.

Jetzt meine Frage an euch:
Besteht weiterhin interesse an diesem Programm? Und sind einige von euch gewillt mich zu unterstützen indem ihr d? e BETA Versionen testet? Ich würde mich echt darüber freuen.

05.02.2008 - 16:52 Uhr

Reicht nicht einfach nur der Befehl:

rundll32.exe setupapi,InstallHinfSection WBEM 132 %windir%\inf\wbemoc.inf

Um die WMI zu reparieren? Da brauch ich doch kein extra Programm für

01.02.2008 - 11:48 Uhr

Ich hab den ersten Fehlercode schon bei der Initialisierung gespeichert also startet der das Programm überhaupt nicht. Also der schafft es nicht mal bis zur ersten Zeile meines Programms. Dann kann ich dir leider nicht helfen. Da kann ich unmöglich was machen.

01.02.2008 - 09:59 Uhr

So hab ein paar Fehlercodes beim Startvorgang eingebaut.
Hier die neue einfach mit der alten ersetzen und dann mal starten.
Danach im selben Ordner wo die EXE ist, wird eine Datei namens "ErrorCode.txt" erstellt. Diese dann öffnen und mir schreiben was da drin steht.

22.01.2008 - 22:00 Uhr

Ok. Fehler kommt beim Starten, also man sieht kein Fenster, gar nix, es kommt gleich die Exception. Windows jeweils auf dem neusten Stand.

Edit: Hier an dem PC hat es geklappt, da funktioniert es. Schaut nicht schlecht aus, vom Design gefällt es mir ziemlich gut. 2 Vorschläge hätte ich da aber:

  • beim Logfenster sind die Scrollbalken nicht vollständig sichtbar
  • das Logfenster wird es nicht aktualisiert, wenn es geöffnet ist und dann ein Backupvorgang gestartet wird

Habs kurz getestet. Wie prüfst du da, ob die Datei erfolgreich kopiert wurde? Per CRC?

-Das mit dem Log-Fenster ist absichtlich gemacht aber wird noch geändert.
-Prüfen tue ich selber nich da ich mittels der IO Namespace Funktion Copy() die Dateien kopiere. Das Framework macht das intern mit APIs. würde ich selber noch einen Kopieralgorithmus verwenden wäre die CPU Last etwas höher beim kopieren. Ich werde eventuell einen Kopieralgo schreiben mit integrierter CRC prüfung so das die Datei während des kopiervorgangs schon mit dem Original verglichen wird.

20.01.2008 - 08:49 Uhr

Nein leider nicht. Wann genau kommt der Fehler denn? Ihc müsste mal an bestimmten stellen Marker einfügen und diese dann in eine Log Datei schreiben damit ich sehen kann wie weit der beim starten kommt. So kann ich evtl. feststellen wo der Fehler ungefähr liegen könnte. Ich sag euch dann bescheid wenn ich diese Marker eingefügt habe. Dann ladet ihr euch diese EXE runter, ersetzt sie durch die Alte und dann startet ihr das Programm und Postet mir anschließend den letzten Marker der in einer Log-Datei (Name und Pfad sag ich wenn es soweit ist) aufgelistet ist.

14.01.2008 - 16:06 Uhr

hey,

ich möchte dein tool gerne für backups einsetzen. weil es mir zu aufwändig ist immer eine batch-datei für meine backups anzulegen.

wann baust du die zip-funktionalität für die sicherungen ein?

Das Versuche ich im Februar umzusetzen. Ihr müsst bedenken ich gehe auch arbeiten bis 16:30 Uhr 😉

Aber ich tue was ich kann. Aber versprechen kann ich nichts. Schließlich ist das ein "Ein-Mann" Projekt 😉

12.01.2008 - 12:58 Uhr

Hm ohne eine konkrete Exception kann ich nicht viel machen. Ich werde mal die Fehlerbehandlung und die ErrorHandler verbessern bzw. erweitern.

10.01.2008 - 17:34 Uhr

Schick mir mal bitte die komplette Meldung der Exception

06.01.2008 - 14:03 Uhr

Ja ich hatte auch nicht vor dem User aufzuzwingen seine Backups zu komprimieren das wäre ja sehr schlecht. Natürlich bleibt alles optional einstellbar.

06.01.2008 - 13:48 Uhr

Les dir mein Blog durch da steht alles 😉
[entfernt]

05.01.2008 - 23:39 Uhr

"Mehrere Benutzer können unterschiedliche Konfigurationsdateien anlegen"

Genau das ist das was ich daran am besten finde. Wenn ich die Einstellungen nun im Programmverzeichnis speichern würde dann hätten alle Benutzer die selben Einstellungen. Nicht gerade zweckmäßig bei einem NT System.

05.01.2008 - 20:34 Uhr

EDIT2: Ist nicht bös gemeint, aber ich finde es generell nicht schön wenn Programme log files und/oder caches im Ordner Anwendungsdaten speichern, das ist irgendwie so wie Sibirien (der Ordner), ich hoffe du weißt was ich meine 🙂
soll echt keine negative Kritik sein, aber eine einstellungsmöglichkeit wo der die logfiles hinspeichert wäre auch schön (und "gleich gemacht").

Ja ich weiß was du mit Sibirien meinst xD das stimmt der Ordner liegt quasi am Ar*** der Festplatte aber das machen alle Modernen Programme weil dieses Verzeichnis genau für diese Einstellungsdateien gedacht sind. Heißt ja nicht umsonst "Anwendungsdaten"

05.01.2008 - 19:11 Uhr

RecentProjects könnte ich schneller realisieren aber der Projekt Manager kommt später und hat niedrige Priorität. Wichtig ist das die Sicherungen erst mal verschlüsselt und komprimiert werden können.

EDIT: So hab jetzt das Feature RecentProjects eingebaut. Einfach wieder Updater starten und aktualisieren (Ich liebe meine Update-Funktion^^).

05.01.2008 - 19:06 Uhr

Danke das freut mich sehr das es dir gefällt =)

05.01.2008 - 19:02 Uhr

Hast du schon ein Update gemacht? das mit den Zeiteinstellungen den Fehler habe ich bereits behoben. Wenn du die aktuellste Version hast dann hab ich ein Problem. Poste ma dann bitte den Fehlertext von der Exception.

26.12.2007 - 16:03 Uhr

Zum packen hatte ich eigentlich vor die OpenSource Zip Libary SharpZipLib zu benutzen und für die Verschlüsselung werde ich die Klassen aus dem Framework verwenden.

Habe mal einen Blog eingerichtet für den Backup Manager:
[entfernt]

Und was die Frage wegen OpenSource angeht... Naja ich möchte es erst mal komplett fertig bekommen und wenn es gut ankommt mach ich es OpenSource.

Wer das Progamm ausprobieren möchte der möchte es doch bitte über den oben genannten Blog herunterladen. Also das Setup herunterladen und dann ein Update ausführen um das Programm auf den aktuellsten Release-Stand zu bringen.

11.07.2007 - 13:04 Uhr

Ist wohl sehr warscheinlich von MS so beabsichtigt. Bringt ja auch nichts wenn das Icon während der Entwicklung angezeigt wird. Wenn man das Control Released dann macht man das auch eh nur als DLL (normalerweise).

11.07.2007 - 12:53 Uhr

Schau mal in der Shell32.dll, dort findest du die Explorer Icons.
Die Extrahierst du am besten mit der "ExtractIcon" API Funktion, ebenfalls aus der Shell32.dll.

11.07.2007 - 12:36 Uhr

Wenn du den shutdown Befehl von Windows benutzen willst musst das so machen:


Process.Start("shutdown -s -t 0")

-s steht für Herunterfahren und -t 0 steht für die Zeit, in diesem Fall 0 Sekunden.
Und man muss auch nicht vorher cmd.exe angeben

23.06.2007 - 21:11 Uhr

Ich fang mal eine Liste an die den Namen "Known Issues Under Vista" trägt.
Windows Vista ist toll wenn man kein Entwickler ist!

Also die Autostartfunktion kann man schon mal vergessen da das Programm beim Windowsstart geblockt wird. Das liegt daran das ich eine Manifest Datei eingebaut habe die das Programm im Admin Modus ausführt da sonst einige Funktionen geblockt sind bzw nicht ausgeführt werden können. Dafür funktioniert die Autostartfunktion nicht mehr weil Vista keine Programme starten will die sich Admin rechte holen. klingt logisch ist aber für mich ne zwickmühle.

Wenn jemand Tipps und Tricks bezüglich "Softwareentwicklung unter Vista" hat dem wäre ich sehr dankbar, aber bis jetzt kann ich nicht viel Support für Vista geben.

Also ich stelle mir dann vor das sich spezielle Funktionen dann eine Erlaubnis vom Benutzer abholen müssen wie man es bei Vista kennt (überall wo dieses Schildzeichen vor einer Funktion abgebildet ist).

26.05.2007 - 00:00 Uhr

Man könnte auch einfach von den Daten die in die ListView Zeile eingefügt werden (Item + SubItem) ein Hash erstellen und diesen als Key einfügen. So kann man später einfach fragen ob der Key schon existiert und zwar mit .ContainsKey.

Ganz einfach und ohne irgendwelche zusätzlichen Listen

19.05.2007 - 01:02 Uhr

Ich bin am überlegen das die Benachrichtigungsoptionen vielleicht doch lieber Global in den Programmeinstellungen festgelegt werden so das man nicht für jedes Projekt dann immer wieder den selben Account eintippen muss. Aber sicher bin ich mir da noch nicht. Was sagt ihr dazu?

06.05.2007 - 13:08 Uhr

Nein du musst nur DX einfach neu installieren dann werden automatisch auch die .NET Assemblies wieder in den entsprechenden Ordner kopiert.

05.05.2007 - 10:00 Uhr

Also ich weiß ja nicht wer schon alles die Version 1.3 ausprobiert hat aber ich werde mal die Berichte lieber als HTML Datei ausgeben, das ist viel besser als die Infos in einem kleinen Fenster anzuzeigen. Und so kann ich diese HTML Datei auch als Email abschicken lassen.

05.05.2007 - 01:18 Uhr

Kleine Frage:
Wenn ich eine Mail als Plain-Text absenden will, wie zum Henker füge ich Zeilenumbrüche in die Mail rein?

01.05.2007 - 09:50 Uhr

Ich werde heute sehr warscheinlich die Version 1.3 endlich releasen. es gibt eine Menge neue Features und ich hatte leider nur wenig Zeit diese alle ausgiebig zu testen. Ich muss mir noch überlegen ob ich es als Beta rausbringen soll oder nicht.

Hier leßt euch schon mal die Changelog durch.
ChangeLog

Benutzt heute ab und zu mal die Update Funktion um zu prüfen ob ein neues Update verfügbar ist. Spätestens 15 Uhr sollte die neue Version verfügbar sein.

30.04.2007 - 17:20 Uhr

Dieses Snippet hat im .NET-Snippets-Wettbewerb den 2. Platz belegt. Gratulation!

Beschreibung:

Mit dieser Klasse kann man sehr leicht eine globale Hotkey funktionalität in seinem Programm einbinden.
Man muss nur dieser Klasse nur eine Form zuweisen die gesubclassed werden soll.
Dann muss man nur noch ein paar eigene HotKey-Kombinationen registrieren (z.B. Strg+Alt+X) und diese
mit dem Event abfragen bzw. abfangen. Dazu muss man eine eigene HotKeyID angeben um einen bestimmte HotKey
Kombination später zu identifizieren wenn diese gedrückt wird. Wenn man z.B. eine Kombination registriert
und ihr z.B. die HotKeyID "TEST1" zugewiesen wird dann kann man später im Event nach dieser ID "TEST1" fragen
und dann eine Funktion aufrufen die für diesen HotKey bestimmt wurde.

PS: Globale Hotkeys sind globale Tastenkombinationen wie z.B. Strg+Alt+Entf. Das heißt diese sind überall in Windows verfügbar, auch während eines Spiels etc. Man muss nicht unbedingt immer 3 Tasten zuweisen man brauch jedoch ein Modifier (Strg,Alt,Shift oder Win) und eine normale Taste wie z.B. Alt+X oder Shift+Y.

Achtung: wenn man mehrere Modifier Tasten oder normale Tasten verwenden will z.B. für eine solche Kombination: Strg+Alt+Shift+X dann muss man diese mit OR verknüpfen

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
/// <summary>
/// Mit dieser Klasse kann man sehr leicht eine globale Hotkey funktionalität in seinem Programm einbinden.
/// Man muss nur dieser Klasse nur eine Form zuweisen die gesubclassed werden soll.
/// Dann muss man nur noch ein paar eigene HotKey-Kombinationen registrieren (z.B. Strg+Alt+X) und diese
/// mit dem Event abfragen bzw. abfangen. Dazu muss man eine eigene HotKeyID angeben um einen bestimmte HotKey
/// Kombination später zu identifizieren wenn diese gedrückt wird. Wenn man z.B. eine Kombination registriert
/// und ihr z.B. die HotKeyID "TEST1" zugewiesen wird dann kann man später im Event nach dieser ID "TEST1" fragen
/// und dann eine Funktion aufrufen die für diesen HotKey bestimmt wurde.
/// </summary>
/// <remarks>Copyright © 2006 Tim Hartwig</remarks>
public class HotKey : IMessageFilter
{
    [DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
    private static extern int RegisterHotKey(IntPtr Hwnd, int ID, int Modifiers, int Key);
    
    [DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
    private static extern int UnregisterHotKey(IntPtr Hwnd, int ID);
    
    [DllImport("kernel32", EntryPoint = "GlobalAddAtomA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
    private static extern short GlobalAddAtom(string IDString);
    
    [DllImport("kernel32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
    private static extern short GlobalDeleteAtom(short Atom);


    public class HotKeyObject
    {
        private Keys mHotKey;
        private MODKEY mModifier;
        private string mHotKeyID;
        private short mAtomID;

        public Keys HotKey
        {
            get { return mHotKey; }
            set { mHotKey = value; }
        }

        public MODKEY Modifier
        {
            get { return mModifier; }
            set { mModifier = value; }
        }

        public string HotKeyID
        {
            get { return mHotKeyID; }
            set { mHotKeyID = value; }
        }

        public short AtomID
        {
            get { return mAtomID; }
            set { mAtomID = value; }
        }

        public HotKeyObject(Keys NewHotKey, MODKEY NewModifier, string NewHotKeyID)
        {
            mHotKey = NewHotKey;
            mModifier = NewModifier;
            mHotKeyID = NewHotKeyID;
        }
    }

    public Form OwnerForm
    {
        get { return mForm; }
        set { mForm = value; }
    }

    private Form mForm;
    private const int WM_HOTKEY = 786;
    private System.Collections.Generic.Dictionary<short, HotKeyObject> mHotKeyList = new System.Collections.Generic.Dictionary<short, HotKeyObject>();
    private System.Collections.Generic.Dictionary<string, short> mHotKeyIDList = new System.Collections.Generic.Dictionary<string, short>();

    /// <summary>
    /// Diesem Event wird immer die zugewiesene HotKeyID übergeben wenn eine HotKey Kombination gedrückt wurde.
    /// </summary>
    public event HotKeyPressedEventHandler HotKeyPressed;
    public delegate void HotKeyPressedEventHandler(string HotKeyID);

    public enum MODKEY : int
    {
        MOD_ALT = 1,
        MOD_CONTROL = 2,
        MOD_SHIFT = 4,
        MOD_WIN = 8
    }

    public HotKey()
    {
        Application.AddMessageFilter(this);
    }

    /// <summary>
    /// Diese Funktion fügt einen Hotkey hinzu und registriert ihn auch sofort
    /// </summary>
    /// <param name="KeyCode">Den KeyCode für die Taste</param>
    /// <param name="Modifiers">Die Zusatztasten wie z.B. Strg oder Alt, diese können auch mit OR kombiniert werden</param>
    /// <param name="HotKeyID">Die ID die der Hotkey bekommen soll um diesen zu identifizieren</param>
    public void AddHotKey(Keys KeyCode, MODKEY Modifiers, string HotKeyID)
    {
        if (mHotKeyIDList.ContainsKey(HotKeyID) == true) return; // TODO: might not be correct. Was : Exit Sub

        short ID = GlobalAddAtom(HotKeyID);
        mHotKeyIDList.Add(HotKeyID, ID);
        mHotKeyList.Add(ID, new HotKeyObject(KeyCode, Modifiers, HotKeyID));
        RegisterHotKey(mForm.Handle, (int)ID, (int)mHotKeyList[ID].Modifier, (int)mHotKeyList[ID].HotKey);
    }

    /// <summary>
    /// Diese Funktion entfernt einen Hotkey und deregistriert ihn auch sofort
    /// </summary>
    /// <param name="HotKeyID">Gibt die HotkeyID an welche entfernt werden soll</param>
    public void RemoveHotKey(string HotKeyID)
    {
        if (mHotKeyIDList.ContainsKey(HotKeyID) == false) return; // TODO: might not be correct. Was : Exit Sub

        short ID = mHotKeyIDList[HotKeyID];
        mHotKeyIDList.Remove(HotKeyID);
        mHotKeyList.Remove(ID);
        UnregisterHotKey(mForm.Handle, (int)ID);
        GlobalDeleteAtom(ID);
    }

    /// <summary>
    /// Diese Routine entfernt und Deregistriert alle Hotkeys
    /// </summary>
    public void RemoveAllHotKeys()
    {
        List<string> IDList = new List<string>();
        foreach (KeyValuePair<string, short> KVP in mHotKeyIDList)
        {
            IDList.Add(KVP.Key);
        }

        for (int i = 0; i <= IDList.Count - 1; i++)
        {
            RemoveHotKey(IDList[i]);
        }
    }

    public bool PreFilterMessage(ref Message m)
    {
        if (m.Msg == WM_HOTKEY)
        {
            if (HotKeyPressed != null)
            {
                HotKeyPressed(mHotKeyList[(short)m.WParam].HotKeyID);
            }
        }
        return false;
    }
}

Schlagwörter: HotKey

Quelle: .NET-Snippets

21.04.2007 - 05:59 Uhr

Ich bin Nichtraucher 🙂

14.04.2007 - 18:41 Uhr

Mir sind doch glatt noch ein paar Features eingefallen die ich sofort umsetzen werde und noch heute Releasen werde so das ihr heute abend oder nacht nochmal ein Update machen könnt, es bleibt aber bei der Version 1.3

Hier meine spontanen Ideen:
-Email benachrichtigung
-Leere Ordner aus Quellordner löschen
-Zusammenfassung nach Kopiervorgang (anzahl Fehler, gelöschte leere Ordner, kopierte Dateien,übersprungene Dateien)

[EDIT]
Ich habe die aktuelle Version mal rausgenommen. Ich muss noch etwas mehr verändern.
Ab Montag muss ich auch wieder arbeiten was für euch bedeutet das es das Update erst nächste Woche Freitag oder Samstag geben wird aber dann wirklich 😉

14.04.2007 - 18:05 Uhr

Nun ja das ist Ansichtssache ich habe mich dafür entschieden das auf Projektebene zu machen und nicht für jeden einzelnen Eintrag. Ich werde das auch so lassen.

14.04.2007 - 17:06 Uhr

So ist nun fertig. Es ist eine neue Version verfügbar (1.3.0 Build 943) ihr könnt diese über die Update-Funktion herunterladen. Prüft ab und zu mal mit der Update-Funktion ob eine neue Version verfügbar ist. Wenn ich nämlich hier und da einen kleinen Fehler noch entdecke werde ich dieses beheben und dann das neue Setup hochladen. Und wie immer einfach über die vorhandene Installation drüber installieren, das ist überhaupt kein Problem.

Hier 2 Bilder von dem neuen Feature "Befehle"
Bild 1
Bild 2

13.04.2007 - 20:39 Uhr

Das ist tatsächlich eine sehr gute Idee die ich auch sofort umgesetzt habe, wie es aussieht könnt ihr euch nachher mal anschauen wenn ich das Setup hochlade.

12.04.2007 - 22:49 Uhr

Es geht auch noch per AutoRun in der Registry, per Taskplaner oder per Startskript vom System

12.04.2007 - 21:50 Uhr

Hat jemand vielleicht noch ein paar sinnvolle und nützliche Features die man im Backup Programm einbauen könnte?

Also die folgenden Features sind noch geplant:
-Assisstent
-FTP Support (sichern und wiederherstellen)
-Verschlüsselung
-Komprimierung
-Projektmanager (Übersichtsexplorer für mehrere Projekte)

Backup auf Bandlaufwerken kann ich nicht umsetzen da ich keins besitze und somit nicht damit arbeiten kann bzw. das Feature testen.

Ach und snoopy was meinst du mit Sichern von Systemstate? Kannst du etwas genauer drauf eingehen?

Und mit Threading hab ich auch ein Problem so das der Kopiervorgang in einem eigenen Thread läuft, das liegt daran das ich innerhalb dieses Threads auf Eigenschaften einer anderen Form zugreifen muss und das irgendwie nicht hinhaut, wie man auf die eigene Form aus dem Thread zugreift weiß ich, nämlich mit einem Delegaten und per Invoke aber das klappt nicht wenn ich von Form A ein Thread starte und aus diesem Thread dann auf eine Eigenschaft in Form B zugreife, auf Form A zugreifen geht ja wie gesagt.

@ldr
Ich habs testen lassen und es funktionierte unter Vista. Muss wohl einer von den berühmten Einzelfällen sein.

11.04.2007 - 15:35 Uhr

Wunderbar, vielen Dank!

11.04.2007 - 11:36 Uhr

Auch Desktop Rechner können Mobile CPUs haben

11.04.2007 - 02:03 Uhr

Wenn die Stromquelle ein Akku ist dann kann ich sicher sein das es sich um ein Laptop handelt aber wenn man den Akku rausnimmt und den Laptop im Wechselstrombetrieb hat dann kann ich es nicht mehr bestimmen.

10.04.2007 - 21:39 Uhr

Wie kann ich feststellen ob der aktuelle Rechner ein Laptop ist?

06.04.2007 - 00:57 Uhr

Ein Assisstent ist ebenfalls in Planung 😉

Danke für dein positives Feedback!

31.03.2007 - 12:24 Uhr

Jo man kann halt individuelle Scripte für das Inno-Setup schreiben, das ist ja das tolle an diesem Programm bzw. an dieser Setup-Engine.

So sieht die Abfrage aus:

[Code]
function InitializeSetup: Boolean;
var
 TempPath : Cardinal;
 ErrorCode : Integer;
begin
 if not (RegQueryDWordValue(HKLM,'SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727','Install',TempPath)) then
begin
 MsgBox('Bitte installieren Sie zuerst das Microsoft .Net-Framework 2.0!',mbError,MB_OK);
 ShellExec('open', ExpandConstant('http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5'),'', '', SW_SHOW, ewNoWait, ErrorCode)
 result:=false;
 end
else
result:=true;
end;
30.03.2007 - 19:32 Uhr

Erst mal vorab:
Wundert euch nicht wenn ich selten antworte bzw. nur einmal die Woche oder alle 2 Wochen

So nun zu euren Posts:
-Ich habe so schon wenig Zeit und erst recht keine Zeit um
das Tool unter Vista zu testen bzw. zu optimieren.

-Weitere Features wie Komprimierung, Verschlüsselung und FTP sind geplant
und werden umgesetzt wenn das Programm im aktuellen Zustand stabil läuft.

-Wenn Outlook geöffnet ist, ist die PST Datei von Outlook schreib und lesegeschützt.
Es gibt Programme die diesen Schutz umgehen (laut c't) ist aber keine
erwünschte Lösung, die Datei ist nicht umsonst geschützt wenn Outlook geöffnet ist.

Ich freue mich über euer positives Feedback, das motiviert mich an dem Tool weiterzuarbeiten. Danke!

14.03.2007 - 23:58 Uhr

@ BerndFfm
Für das Setup habe ich Inno Setup verwendet (sehr zu empfehlen) dazu habe ich ein Script erstelllt was auch prüft ob das Framework 2.0 vorhanden ist bevor das Programm installiert wird.

@Till-H
Vielen Dank für deinen Lob, find ich super das dir das Tool gefällt!

10.03.2007 - 19:13 Uhr

Ich möchte euch hier mein Datensicherungsprogramm "My Backup Manager" vorstellen was dazu dient - wie der Name schon sagt - Datensicherungen durchzuführen.

Ich habe auch schon unzählige Stunden damit verbracht das Programm zu testen. Aber das bringt nicht viel wenn man das Programm alleine testet.

Immerhin liegt das Programm bereits in der Version 1.2.0 vor und hat schon so einige Bugfixes hinter sich und läuft jetzt schon sehr stabil. Aber wie gesagt ich kann nur von meinem System sprechen.

Hier könnt ihr euch die Changelog durchlesen:
Changelog

Und hier gibt es einen Screenshot vom Programm:
Screenshot

Hier eine Liste mit den Haupteigenschaften des Programms:
-Backups zeitgesteuert und manuell ausführbar
-Einstellungen für jeden Eintrag individuell einstellbar
-Drag & Drop Unterstützung
-Suchfunktion für alte Dateien und Ordner (Ordnersynchronisation)
-Statistik
-Import und Export von einzelnen oder mehreren Einträgen möglich
-Explorer Erweiterung für Ordner (Optional)

Außerdem kann man auch einzelne Einträge deaktivieren falls diese mal vorübergehend von einer kompletten Sicherung ausgeschlossen werden sollen.

Eine Ausnahmeliste gibt es auch in der man Dateien, Ordner oder nur Namen eintragen kann welche dann nicht gesichert werden. Praktisches beispiel die Datei thumbs.db. Die brauch man z.B. nicht sichern, also gibt man bei der Ausnahmeliste einfach den Namen "thumbs.db" an und diese Dateien werden einfach ignoriert.

Und wenn einer Optionen wie "Inkrementielles Backup" etc. vermisst, ich habe die Sicherungseinstellungen anders benannt
und zwar so das diese auch für Otto-Normal-Verbraucher verständlich sind.

Es gibt 4 Sicherungsoptionen:
-Dateien immer überschreiben (Die Dateien werden immer neu kopiert/gesichert)
-Nur wenn Datei geändert wurde (Nur neue Dateien oder Dateien mit neuerem Datum werden kopiert/gesichert)
-Nachfragen (Der User wird gefragt ob Datei X überschrieben werden soll falls vorhanden)
-Überspringen (vorhandene Dateien werden nicht kopiert/gesichert)

Nun es gibt auch noch Sachen die ich noch im Programm umsetzen möchte bzw. werde.
Ganz wichtig wäre der Punkt das der Kopiervorgang in einem eigenen Thread läuft, das werde ich auf jeden fall noch machen wenn ich Zeit habe.
geplant sind weitere Features:
-Dateien beim sichern verschlüsseln oder komprimieren
-FTP unterstützung
-Projektmanager
-Support für mehrere Sprachen

Wer lust hat kann das Programm ja mal testen und mir eventuelle Fehlermeldungen berichten.

Aber erst mal ist mir wichtig das das Programm so wie es jetzt ist so gut wie 100%ig läuft
und alle Fehler behoben werden bevor ich weitere Features einbaue.

Das Programm ist Freeware und (noch) Closed Source.

14.09.2006 - 18:31 Uhr

Ich habe etwas neues erkannt:

Ich habe das DirectX Update August 2006 mal auf einem rechner installiert wo es nicht ging, und ZACK es wurde auch das Framework aktualisiert wie ich beobachtet habe, und ich habe nachgeguckt es wurde tatsächlich aktualisiert und dann funzte auch alles.

Dieser Ordner war dann auch neu mit etwa 30 MB inhalt:
C:\WINDOWS\Microsoft.NET\DirectX for Managed Code

Toll dann habe ich auf jedem Rechner ne 50/50 chance das das Framework mit DirectX aktualisiert wurde.

Kann ich das nicht alles anders machen? so das ich DirectX nicht verwenden muss vllt über eine API den Shader herausbekommen.

Ich brauche das unbedingt ich hoffe ihr könnt mir helfen.

14.09.2006 - 17:58 Uhr

Anscheinedn liegt es wirklich daran, aber müssen dann alle leute die mein Programm benutzen wollen Managed DirectX installieren?? ich weiß nicht mal wo man das her bekommt (ja ok google) aber ich habe es nicht installiert.

Wie macht ihr das denn?

Echt toll da habe ich schon eine möglichkeit gefunden und dann kommt so ein Problem. Ich kann doch nicht von den leuten erwarten das sie noch irgend eine Software zusätzlich installieren um das Programm benutzen zu können, NET2.0 reicht ja wohl.

14.09.2006 - 17:47 Uhr

Hm ich habe nie Managed DirectX installiert und ein paar leute die ich das habe testen lassen ganz sicher auch nicht, nur bei einem funktionierte es ja nicht, da stürzte es halt ab. Das ist komisch