Entwickler-Ecke

Windows API - Mehrere Parameter bei Shellexecute


CodeRed - Fr 22.04.05 20:42
Titel: Mehrere Parameter bei Shellexecute
hi!
hab schon gesucht, aber ich find einfach keine lösung, die funktioniert.

wie schon im titel erwähnt will ich ein programm starten und mehrere parameter übergeben.
ich mach das so:

Delphi-Quelltext
1:
Shellexecute(handle,'open',pchar(ExtractFilePath(Application.ExeName)+'Programm.exe',pcahr('param1 param2'),nil,sw_show);                    


ich bin mir ziemlich sicher, dass der erste parameter übergeben wird, der zweite jedoch nicht. vielleicht könnt ihr mir ja die zeile richtig posten...

MfG Thx
CodeRed

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt.


demo88 - Fr 22.04.05 22:16

Ich mach das immmer so:


Delphi-Quelltext
1:
Shellexecute(handle, 'open', pchar(ExtractFilePath(Application.ExeName)+'Programm.exe',pcahr('-param1 -param2'), nil, sw_show);                    


fvolk - Sa 23.04.05 14:05

Zwischen beiden Varianten besteht kein Unterschied, es kommt eben darauf an, wie das Programm seine Parameter übergeben bekommen will. Unter Windows haben sich "/" sowie "-" durchgesetzt, unter Unix-System wird häufig "-" für einzelne Zeichen und "--" für Sinnbilder verwendet.

Aber zu deinem Problem:

Zitat:
ich bin mir ziemlich sicher, dass der erste parameter übergeben wird, der zweite jedoch nicht.


Das könnte daran liegen, dass der Code falsch ist. Folgendermaßen ruft man ShellExecute auf (vgl. Suche im MSDN SHELLEXECUTE)


Delphi-Quelltext
1:
ShellExecute(0'open', PChar(AUFZURUFENDE_DATEI), PChar(PARAMETER), nil, SW_SHOW);                    


Alternativ kannst du auch die beiden PChar in PAnsiChar abändern (je nach Delphi-Version).