Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi "Systemfehler" bei ShellExecute (https://www.delphipraxis.net/111231-systemfehler-bei-shellexecute.html)

xZise 31. Mär 2008 22:06


"Systemfehler" bei ShellExecute
 
Hallo DP,
Ich bekomme bei folgender Zeile, folgenden Fehler.

Zitat:

---------------------------
QuickDownload 2
---------------------------
Systemfehler. Code: 5.

Zugriff verweigert.
---------------------------
OK
---------------------------
Delphi-Quellcode:
ShellExecute(Handle, PChar('open'), PChar('Integrater.exe'), PChar('--install qxpress "Q-Xpress Installer File" "' + ParamStr(0) + '" %0'), PChar(ExtractFilePath(ParamStr(0))), SC_DEFAULT);
Könnte das damit zusammenhängen, dass "Integrater.exe" mit Adminrechten ausgeführt werden (muss)?

MfG
xZise

mkinzler 31. Mär 2008 22:10

Re: "Systemfehler" bei ShellExecute
 
Ja, weil es mit den selben Rechten, wie das rufende Programm gestartet wird.

xZise 1. Apr 2008 23:00

Re: "Systemfehler" bei ShellExecute
 
Und wie verhindere ich es bzw. schaffe es dass der neue Prozess mit höheren Rechten starten kann?

MfG
xZise

mkinzler 2. Apr 2008 05:33

Re: "Systemfehler" bei ShellExecute
 
Welches OS?

xZise 2. Apr 2008 12:29

Re: "Systemfehler" bei ShellExecute
 
Vista ;)

MfG
xZise

Luckie 2. Apr 2008 12:35

Re: "Systemfehler" bei ShellExecute
 
Zum Beispiel so: http://www.michael-puff.de/Artikel/C...WithLogonW.php

Dezipaitor 2. Apr 2008 12:51

Re: "Systemfehler" bei ShellExecute
 
Rückgabewert 5 sollte eigentlich darauf hinweisen, dass die Datei nicht vom aktuellen Benutzer geöffnet werden kann. Die DACL verweigert dies.
Im Gegensatz dazu wird die Fehlernummer 740 von CreateProcess zurückgeliefert, wenn der aufzurufende Prozess ein "requireAdministrator" im Manifest besitzt. Ob Shellexecute genau dasselbe zurückliefert, kann ich im mom auch nicht sagen. ShellExecute mit "runas", statt mit "open" aufrufen, sollte aber gehen.

xZise 2. Apr 2008 17:36

Re: "Systemfehler" bei ShellExecute
 
Also im Manifest des zu startendenen Programms steht "requireAdiministrator".

Ich habe jetzt erstmal das Handle auf "0" gesetzt, und es funktioniert tatsächlich :)

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz