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 Shell Execute will nicht :-) (https://www.delphipraxis.net/97907-shell-execute-will-nicht.html)

hedie 18. Aug 2007 12:51


Shell Execute will nicht :-)
 
Hallo

Ich möchte gerne eine anwendung (privoxy) mittels ShellExecute öffnen

Ich wollte diesen code verwenden

Delphi-Quellcode:
ShellExecute(Form1.Handle, nil, 'Privoxy\privoxy.exe',
  nil, nil, SW_Show);
Jedoch kommt dabei immer eine fehlermeldung..

Inzwischen habe ich herausgefunden was der fehler ist, weswegen ich auch die fehlermeldung nicht poste..

Das problem ist, das aus irgendeinem grund privoxy (die zu öffnende exe) nicht weiss wo sie sich befindet :)
Darauf gekommen binn ich, nach dem ich versucht habe Privoxy mittels einer bat zu starten...

Inhalt der bat:

Code:
start privoxy.exe
Mittels mausklick ausgeführt, startet die Bat privoxy problemlos, jedoch wenn shellexecute die bat öffnet, kommt die meldung

Code:
die datei 'privoxy.exe' kann nicht gefunden werden.

ich hoffe ihr könnt mir helfen.

liebe grüsse

DeddyH 18. Aug 2007 12:55

Re: Shell Execute will nicht :-)
 
Zitat:

Zitat von hedie
Delphi-Quellcode:
ShellExecute(Form1.Handle, nil, 'Privoxy\privoxy.exe',
  nil, nil, SW_Show);

Das würde IMO bedeuten, dass die privoxy.exe sich in einem Unterverzeichnis mit Namen Privoxy unterhalb Deines Programms befindet. Wieso gibst Du nicht einfach den kompletten Pfad mit an?

Zacherl 18. Aug 2007 13:01

Re: Shell Execute will nicht :-)
 
In diesem Falle:
Delphi-Quellcode:
ShellExecute(Form1.Handle, 'open', PChar(ExtractFilePath(ParamStr(0)) + 'Privoxy\privoxy.exe'),
  nil, nil, SW_Show);
Der 2. Parameter sollte übrigens "open" sein.

Christian Seehase 18. Aug 2007 13:08

Re: Shell Execute will nicht :-)
 
Moin Claudio,

wenn Du einfach nur den Namen angibst, muss sich die Datei im Suchpfad befinden, tut sie das nicht, wovon ich mal ausgehe, muss Du den Pfad mit angeben.
Windows sucht nach der Datei
  1. in dem Verzeichnis, aus dem heraus die Anwendung gestartet wurde, die versucht die andere zu starten
  2. im Arbeitsverzeichnis (aktuellen Verzeichnis) der Anwendung. Wenn keines angegeben wurde, und seit dem Anwendungsstart daran auch nichts geändert wurde (z.B. durch das Öffnen einer Datei, mittels Dialog) ist es mit dem Verzeichnis der Anwendung identisch.
  3. im System32-Verzeichnis
  4. im System-Verzeichnis
  5. im Windows-Verzeichnis
  6. in den Verzeichnissen, die in der Umgebungsvariable Path stehen

War die Suche erfolglos, gibt's die genannte Fehlermeldung


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.

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