![]() |
Kann externer Prozess nicht korrekt starten.
Hallo,
ich hab irgendwo den unten stehenden Code her, weiss leider nicht mehr von wo, um externe Prozesse zu starten. Das Ganze klappt auch soweit ganz wunderbar. Jedoch habe ich versucht mittels mysql.exe eine Datenbank aus einem Dump zu erstellen. Filename=c:\mysql\bin\mysql.exe -uroot -hlocalhost -pBLABLA meinedb < dump.sql Gebe ich diesen Befehl direkt in einer Konsole ein, klappt das auch wunderbar. Über die RunProcess Methode jedoch nicht? RunProcess klappt, wie gesagt in allen anderen Fällen, die ich ausprobiert habe. Ich habe den Verdacht, es liegt an dem Zeichen < im Befehl... Kann das sein, oder hat jemand ne Erklärung für das Phänomen. Noch ne Bemerkung: ein neuer Prozess WIRD gestartet, jedoch wird der Befehl eben nicht korrekt ausgeführt. Gruß, Tom
Delphi-Quellcode:
function RunProcess(FileName: string; ShowCmd: DWORD; wait: Boolean; ProcID: PDWORD): Longword;
var StartupInfo: TStartupInfo; ProcessInfo: TProcessInformation; begin FillChar(StartupInfo, SizeOf(StartupInfo), #0); StartupInfo.cb := SizeOf(StartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK; StartupInfo.wShowWindow := ShowCmd; if not CreateProcess(nil, @Filename[1], nil, nil, False, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then Result := WAIT_FAILED else begin if wait = FALSE then begin if ProcID <> nil then ProcID^ := ProcessInfo.dwProcessId; exit; end; WaitForSingleObject(ProcessInfo.hProcess, INFINITE); GetExitCodeProcess(ProcessInfo.hProcess, Result); end; if ProcessInfo.hProcess <> 0 then CloseHandle(ProcessInfo.hProcess); if ProcessInfo.hThread <> 0 then CloseHandle(ProcessInfo.hThread); end; |
Re: Kann externer Prozess nicht korrekt starten.
Hi!
Da Filename ein String ist: Müssten da nicht Anführungszeichen stehen? Ciao fkerber |
Re: Kann externer Prozess nicht korrekt starten.
Zitat:
Filename := "c:\mysql\bin\mysql.exe" -uroot -hlocalhost -pBLABLA meinedb < "i:\dump.sql" Tom |
Re: Kann externer Prozess nicht korrekt starten.
Hi!
Ja wenn ich einen String so definiere hagelts Fehlermeldungen: Weil Teile der Anweisungen kein String sind: Filename := "c:\mysql\bin\mysql.exe" -uroot -hlocalhost -pBLABLA meinedb < "i:\dump.sql" Ciao fkerber |
Re: Kann externer Prozess nicht korrekt starten.
Was ich sagen wollt ist einfach daß ich als Parameter Filename den genannten String übergebe. Es hagelt keine Fehlermeldungen. Wie ich in Delphi einen String definier weiss ich natürlich. Bei anderen Befehlen klappt die RunProcess Routine ja wunderbar, nur eben nicht, wie es scheint, wenn ich eine Datei mittels < im Befehl einlese.
Gruß, Tom |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 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