Parameter von CreateProcess() unklar
-
Was ist denn der Unterschied zwischen LPCWSTR lpszImageName und LPCWSTR lpszCmdLine?
Kann mir jemand den unterschied zwischen den beiden folgenden Zeilen erklären.
Ich blick`s nit.antwort = CreateProcess("c:\\test.bat",0,0,0,0,CREATE_NEW_CONSOLE,0,"C:\\",&si,&pi); antwort = CreateProcess(0,"c:\\test.bat",0,0,0,CREATE_NEW_CONSOLE,0,"C:\\",&si,&pi);
-
hallo,
also lpszImageName ist der Name der ausführbaren datei und lpszCmdLine enthält die command lind. Wenn lpszImageName allerdings null ist, wird der alles bis zum ersten whitespace zeichen vom lpszCmdLine string als pfad zur ausführbaren datei interpretiert, während wenn beide ungleich null sind ist lpszCmdLine nur die command line. ich hoffe das stimmte jetzt
im zweifelsfall kannstr du es auf msdn auch selbst nachlesen
-
Kann man mit CreateProcess() auch DOS-Befehle wie md c:\\test5 ausführen? das wär cool
-
Achso, clpszCmdLine dient also nur zur Angabe von Parametern für die Anwenung die in lpszImageName angegeben ist. Korriegiert mich bitte wenn ich falsch lieg...
-
Geuse schrieb:
Achso, clpszCmdLine dient also nur zur Angabe von Parametern für die Anwenung die in lpszImageName angegeben ist. Korriegiert mich bitte wenn ich falsch lieg...
wo siehst du lpszImageName?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess.aspGeuse schrieb:
Kann man mit CreateProcess() auch DOS-Befehle wie md c:\\test5 ausführen? das wär cool
jep
-
Sorry, war in der OnlineHilfe zur CreatProcess()-Definition für WinCE gerutscht. Dort ist es LPCWSTR lpszImageName und LPCWSTR lpszCmdLine.
Es muss natürlich heißen lpApplicationName und lpCommandLine.Wie kann man denn einen DOS-Befehl wie z.B. md c:\\test10 ausführen?
-
hab`s mal so versucht, geht aber leider nit
...
antwort = CreateProcess("cmd.exe","md c:\\test10",0,0,0,CREATE_NEW_CONSOLE,0,"c:\\",&si,&pi);
... und nen Batchfile-Aufruf krieg ich auch nit hin so wie in der Online-Hilfe erklärt...
antwort = CreateProcess("cmd.exe","c:\\test.bat",0,0,0,CREATE_NEW_CONSOLE,0,"c:\\",&si,&pi);
... wobei folgender Aufruf von nem Batch-File wieder geht???
antwort = CreateProcess("c:\\test.bat","",0,0,0,CREATE_NEW_CONSOLE,0,"c:\\",&si,&pi);
Ich wüßt aber lieber wie man einen DOS-Befehl direkt angeben und ausführen kann(ohne Batch-File)?
-
system( "md C:\\test10" );
-
Danke, aber immo nutze ich system().
Wüßte halt gerne wie es mit CreateProcess() geht.
-
Wer sagt denn, dass cmd solche übergebenen Parameter ausführt?!
Vielleicht geht dass gar nicht. Nur cmd starten ist kein Problem...
-
miller_m schrieb:
...
Geuse schrieb:
Kann man mit CreateProcess() auch DOS-Befehle wie md c:\\test5 ausführen? das wär cool
jep
Er hat das gesagt und ich frag mich nun wie das wohl gehen mag?
-
du musst über eine pipe die befehle senden.
http://msdn.microsoft.com/library/en-us/ipc/base/pipes.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/creating_a_child_process_with_redirected_input_and_output.asp[edit]
ps: für so aufgaben wie ein verzeichniss erstellen gibt es auch winapi funktionen.