Und das, was Ihr da macht, klappt alles unter Vista mit
UAC?
Ich mach das so:
1) Prüfen auf Updates per HTTP (am einfachsten insbesondere wg. Rechten, Firewall etc!)
2) Download in das Temp-Verzeichnis des aktuellen Benutzers unter einem nicht vergebenen Namen mit Prefix (Anwendungxyz-Update-123.exe), natürlich Hash-Vergleichen
3) Hilfsprogramm mit den Parametern aufrufen, die Pfad zum Update und aufrufenden Hauptprogramm enthalten
4) ShellExecute + Wait für das Update mit Elevation-Anforderung (tauscht Dateien im Programmeverzeichnis aus)
5) Update-EXE löschen, wenn möglich (wollen das Temp des Benutzers ja nicht zumüllen)
6) Hauptprogramm erneut starten
Inkl. Fallback, falls das Hilfsprogramm nicht gefunden wird (wird direkt Update aufgerufen mit Hinweis auf manuellen Programmneustart). Zusätzlich hab ich eine Benachrichtigung drin (Tray bzw. Messagebox für
Win9x) und einen Update-Wizard mit Fehlerprüfung (Download-Abbruch, Verbindungsfehler, Hash-Fehler) und Informationen (je nach System und Verbindung mit Progressbar, Marquee oder Marquee-Simulation für ältere Systeme) etc.pp.
Viel bequemer geht es für den Benutzer nicht.
Gruß winkel79