![]() |
Delphi-Version: 5
ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Hallo Allerseits,
ich habe Probleme bei der Übergabe von Parametern, die man dem aufzurufenden Programm mit gibt. Der eigentliche Aufruf des Programms über
Delphi-Quellcode:
ist klar:
ShellExecute
Delphi-Quellcode:
Probleme machen hier die Parameter.
ShellExecute(Handle, 'open', PChar(DateiName), PChar(Parameter), PChar(VerzeichnisPfad), SW_SHOWNORMAL);
Die da lauten '-h hostname -u username -ppasswort -e "SELECT * FROM datenbank.tabelle" > ausgabe.txt'. Ziel ist es aus Delphi heraus ein MySQL-Kommando auf der Kommandozeile auszuführen. Wenn ich das Kommando mit mysql.exe -h hostname -u username -ppasswort -e "SELECT * FROM datenbank.tabelle" > ausgabe.txt direkt aus der cmd-Shell heraus aufrufe, funktiniert alles prima. Wenn ich die Umleitung in die Datei weglasse (also > ausgabe.txt), funktioniert dies auch aus Delphi heraus. Das Problem muss also im hinteren Teil des Parameterstrings liegen. Wahrscheinlich kommt
Delphi-Quellcode:
nicht mit den Leerzeichen, oder dem "größer als-Zeichen" nach den hinteren doppelten Anführungsstrichen (") klar.
ShellExecute
Kann jemand helfen? |
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Wenn mich nicht alles täuscht, dann liegt das Problem an der Umleitung in eine Datei. Das geht hier nicht so einfach. Du musst die Ausgabe selbst abfangen (mal danach googlen) und auch selbst in eine Datei schreiben. :stupid:
|
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Ein Test mit dem Kommando
Code:
(cmd.exe als Programmname, der Rest als Parameter) hat bei mir funktioniert. Evtl. wird die Datei erzeugt, aber nicht im erwarteten Verzeichnis?
cmd /c echo "Hallo Welt" > C:\temp\Bla.txt
|
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Dass die cmd.exe pipen kann, ist klar, nur halt nicht das andere Programm. Klar kann man das wiederum über die cmd.exe aufrufen, damit pipen geht statt die Ausgabe selbst einzufangen, aber das wäre irgendwie... unnötig...
|
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Zitat:
Beim Ausführen "blitzt" ganz kurz ein cmd-Fenster auf. Wenn man das mehrere Male hintereinander macht, kann man sehen, dass die Datei zwar ausgeführt wird, aber eine Fehlermeldung ausgegeben wird. Diese kann ich leider nicht lesen, da das Ganze zu schnell geht und ich keinen Aufrufparameter für
Delphi-Quellcode:
gefunden habe, der das Fenster offen läßt.
ShellExecute
Wie gesagt, ich denke, dass die Parameter von
Delphi-Quellcode:
nicht richtig an das Programm weitergereicht werden.
ShellExecute
|
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Zitat:
"mysql.exe" kann definitiv pipen. Direkt aus einem cmd-Fenster aufgerufen funktiniert ja alles. Wie meinst Du das? |
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Zitat:
|
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Zitat:
Zitat:
Du musst das Pipen, also das Auslesen der Ausgabe aus den Ausgabepipes, selbst übernehmen: ![]() usw. |
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Oder er ruft cmd mit eben genau diesen Parametern auf:
ShellExecute(0, 'open', 'cmd /C ', 'mysql.exe -h hostname -u username -ppasswort -e "SELECT * FROM datenbank.tabelle" > ausgabe.txt', NIL, SW_SHOWNORMAL) |
AW: ShellExecute: Probleme bei der Übergabe von zusätzlichen Programmparametern
Zitat:
Aber so ganz verstehe ich das noch nicht. Ich dachte, die Funktion
Delphi-Quellcode:
ruft genau cmd.exe auf und ich befinde mich dann innerhalb dieser Shell?:?:
ShellExecute
Und darin wird dann das Programm mysql.exe gestartet mit den Parametern, die ich zusätzlich übergeben habe. Wo ist da mein Denkfehler? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11: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