Hallo,
ich hab hier eine kleine Verständnisfrage.
Und zwar habe ich unseren Online Updater überarbeitet, so dass er sich ins Vista-
UAC-Konzept einpasst.
Das beinhaltet, dass es jetzt zwei EXEn gibt:
Eine führt die reine Überprüfung nach Updates aus und hat ein Vista-Manifest mit "asInvoker" als Rechteanforderung.
Gibt es Updates, dann erhält der "Download & Install"-Button ein Vista-
UAC-Schild per
API und auf Klick wird die zweite
EXE mit passenden Parametern gestartet. Diese hat "requireAdministrator" im Manifest, da im Programmeverzeichnis hantiert wird. Der Aufruf erfolgt per ShellExecute, damit die
UAC-Abfrage kommt statt einer Fehlermeldung, was auch wunderbar funktioniert.
Jetzt gibt es ein spezielles Problem. Und zwar muss der "Checker" sich selbst neustarten können. Das habe ich realisiert, in dem ich den "Downloader" mit einem speziellen Parameter starte, der dafür sorgt, dass der Downloader im OnCreate einfach die Checker.exe starte und sich dann selbst beendet. Soweit, so gut. Das Problem ist jetzt, dass der durch den Downloader gestartete Checker anscheinend mit den Adminrechten des Downloaders läuft und somit nicht mehr in die richtigen Registry-Zweige kommt (um die Registry komm ich momentan nicht drum herum).
Meine Frage ist jetzt, wie ich den Checker starten kann, als würde er vom User oder von einer "asInvoker"-EXE gestartet werden.
ShellExecute funktioniert nicht, CreateProcess hat das gleiche Problem
Impersonation fällt flach, da ich den aktuellen User ja net nach seinem Passwort fragen kann.