> Bei Vista/Win7 hab ich mich bislang so beholfen, dass ich dem Anwender sage,
> zur Freischaltung soll er das Programm einmal im Admin-Modus starten.
> Sch�n ist das allerdings nicht; ich h�tte lieber einen UAC-Dialog statt
> der Virtualisierung. Wie krieg ich das hin?
Mit einem Manifest.
Guggst du mal hier:
http://blogs.msdn.com/calvin_hsia/archive/2007/04/13/add-a-manifest-to-control-your-application-vista-uac-behavior.aspx
Markus Winhard und Michael Niethammer haben da auch schon Stammtisch-Vortr�ge
und auf der DEVCON dazu vorgetragen. Habe leider keine URL daf�r.
--
Hans-Peter Gr�zinger
TOFU ist gedankenlose Resourcenverschwendung.
http://einklich.net/usenet/zitier.htm
http://support.microsoft.com/default.aspx?scid=fh;DE;NGNetikette
Es gibt sie als MSDN Webcast. Hier im deutsch MS Foxpro Forum wird darauf
verwiesen:
http://social.msdn.microsoft.com/Forums/de-DE/foxprode/thread/3ee023e1-8167-4431-843b-56ca0b2b8a32
Tsch��, Olaf.
Das geht nicht mit einem Manifest, das Manifest w�rde mittels
"requireAdministrator" statt "asInvoker" dann immer eine Adminanmeldung
anfordern, wenn Du es startest.
Aber genau das tut das gew�hnliche Manifest, was in die EXE eingebettet ist,
nicht.
Das einfachste w�re wohl, genau diese Funktionalit�t auszulagern in eine
abgetrennte EXE mit entsprechendem Manifest, denn einen Prozess, der
AsInvoker gestartet ist nachtr�glich noch Administrationsrechte zu geben
geht meines Wissens nach gar nicht. Du kannst vielleicht noch die
Impersonation �ndern, aber das erh�ht den Executionlevel nicht, die Exe
l�uft dann nur als Admin wie eben eine unter Adminkonto ausgef�hrte
Applikation ohne UAC Nachfrage nach Erh�hung des Executionlevels.
Das hier z.B. best�tigt in der 2. Antwort mit 6 Punkten, da� sich ein
laufender Prozess nicht nachtr�glich einen h�heren ExecutionLevel holen
kann:
http://stackoverflow.com/questions/923350/delphi-prompt-for-uac-elevation-when-needed
Tsch��, Olaf.
Das hei�t, wo auch immer Du einen UAC-Dialog mit Aufforderung zur Anmeldung
als Admin
oder wenn Du bereits Admin bist zum Zulassen hast, wird aus dem laufenden
Prozess entweder
ein COM-Server gestartet oder ein neuer Prozess, eine zweite EXE.
Tsch��, Olaf.