Einzelnen Beitrag anzeigen

Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

ShellExecuteEx funktioniert manchmal nicht

  Alt 10. Aug 2010, 11:52
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?

Geändert von Shark99 (10. Aug 2010 um 11:55 Uhr)
  Mit Zitat antworten Zitat