![]() |
ShellExecute mit mehreren Parametern
Hi,
ich möchte mit ShellExecute mehrere Parameter aufrufen. Ein Parameter geht ja, aber wie soll ich den zweiten aufrufen. Mein derzeitiger Code ruft leider nur den ersten Flag auf.
Delphi-Quellcode:
Der erste Parameter ist ein Dateiname, der andere (-d '+OwnFolderPath) löst den parameter "d" mit der variable OwnFolderPath auf. Wieso geht mein Code nicht? Muss ich vielleicht den zweiten Flag wo anders positionieren?
shellexecute(application.handle, 'open', Pchar(extractfilepath(application.exename)+'streamripper\streamripper.exe'),Pchar(Listbox2.Items.Strings[Listbox1.itemindex]+' -d '+OwnFolderPath),'',sw_shownormal);
Vielen Dank für eure hilfe Bye, Andy |
Re: ShellExecute mit mehreren Parametern
Hi,
wenn ShellExecute fehlschlägt wird ein Code >= 32 zurückgegeben. Also zur Fehlerbestimmung:
Delphi-Quellcode:
mfG
if ShellExecute(...) >= 32 then
ShowMessage(SysErrorMessage(GetLastError)); // oder: RaiseLastOSError; mirage228 |
Re: ShellExecute mit mehreren Parametern
Aber ShellExecute schlägt nicht fehl. Ich führe den oberen Code aus und es wird halt einfach nur der erste Parameter ausgeführt, der zweite nicht. Aber es kommen keine Fehler etc.
|
Re: ShellExecute mit mehreren Parametern
Zitat:
|
Re: ShellExecute mit mehreren Parametern
oder versuch mal #13 dazwischen zu setzen
|
Re: ShellExecute mit mehreren Parametern
Ich hab das problem.
In der variable "OwnFolderPath" befindet sich ja ein Pfad. Dieser Pfad enthält ein Leerzeichen. Der Pfad lautet: F:\streamripper gui\streams Die konsolenanwendung denkt das Verzeichnis lautet F:\streamripper. Es liegt also am Leerzeichen. gibt es da irgendeinen Platzhalter für Leerzeichen, so das die Konsolenanwendung den Pfad richtig erhält. In Internet-Adressen gibts ja diese %20 als Leerzeichen. Was muss ich in meinen Sourcecoide einbauen?
Delphi-Quellcode:
hmm???
StringReplace(OwnFolderPath,' ',%20,[rfReplaceAll]);
Vielen Dank schonmal |
Re: ShellExecute mit mehreren Parametern
Nein, wenn der Pfad Leerzeichen enthält muss Du den gesamten Pfad in Anführungszeichen setzen.
z.B. "C:\Mit Leerzeichen\abc.def" mfG mirage228 |
Re: ShellExecute mit mehreren Parametern
*schnarch* Wie wäre es denn mal erst oben zu lesen und dann nochmal zu fragen. Die Hochkommata ("") werden auch auf der Kommandozeile benutzt um Leerzeichen enthaltende Parameter zusammenzuhalten.
Den anderen Trick mit #13 kenne ich nicht und kann daher nichts über Funktionsweise usw. aussagen. |
Re: ShellExecute mit mehreren Parametern
Ahh, Danke.
Jetzt funktioniert alles. Endlich kann ich die beta zum testen freigeben... |
Re: ShellExecute mit mehreren Parametern
Hallo,
ich habe gerade ein ähnliches Problem.
Delphi-Quellcode:
ShellExecute funktioniert ich bekomm von der Funlktion aber immer den Rückgabewert 42.
...
PChar("/devmod /lD:\Test"), // als auch PChar("/devmod" "/lD:\Test"), // funktioniert ... Mit diesem Wert fall ich dann in die Fehlerabfrage >= 32 Was bedeutet dieser Rückgabwert??? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 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