Ich benutzte ShellExecuteEx aus der
Jedi Lib um meine eigene Anwendung neuzustarten inkl eines
UAC Dialogs mit nachfolgenden Admin rechten, d.h. der erste Start ist ohne Admin rechte und erst bei Bedarf werden diese angefordert.
Die Beschreibung habe ich von hier:
http://blog.delphi-jedi.net/2008/03/...ta-with-jwscl/
Delphi-Quellcode:
JwShellExecute(
Handle,
ParamStr(0), f+'
;'+p, '
', SW_NORMAL,
[sefNoUi, sefFixDirWithRunAs,
sefIgnoreElevationIfNotAvailable, sefNoClosehProcess]);
Unter Windows Vista SP3 32 Bit: läuft ohne Probleme
Unter Windows 7 64 Bit aus der Delphi 7
IDE Heraus: läuft ohne Probleme
Unter Windows 7 64 Bit vom Explorer gestartet kommt diese
Exception:
EJwsclWinCallFailedException
GetLastError: 127
GetLastErrorMsg: The specified procedure could not be found
Erklärung aus dem
Jedi Code:
EJwsclWinCallFailedException: will be raised if a call to ShellExecuteEx failed
EJwsclUnsupportedWindowsVersionException will be raised if the flag
sefIgnoreElevationIfNotAvailable is set and
UAC is not available
---
UAC ist auf allen Systemen an.
Suche nach einer Lösung seit zwei Stunden und bin nun am verzweifeln. In allen drei Fällen hat die App beim ersten start KEINE Admin Rechte (ausgiebig getestet). Wieso funktioniert es unter Vista und unter Windows 7 aus der
IDE heraus, aber nicht unter Windows 7 ohne die
IDE?