Wie ruft man eine Batch-datei aus MFC Anwendung auf??
-
hi,
kann mia jemand sagen wie man eine Batch-Datei aus einer MFC Anwendung heraus aufrufen kann?
(WinExec akzeptiert leider nur exe-files)
danke.
-
Servus,
ShellExecute() sollte das machen. -> MSDN gucken
*winke*
Hellsgore
-
danke fuer den tipp, nur eine frage noch zu shellexecute:
ich glaube das ding laueft als eigener prozess. Mein problem ist, dass ich nach aufruf von shellexecute("program") einen funktionaufruf habe, der ein bestimmte datei, die von "program" erzeugt wird, benoetigt.
z.B:... ShellExecute(...Bla...); foo(); ...
bei aufruf von foo() ist die datei die durch das programm erstellt wird, noch nicht vorhanden.
was kann ich da machen ?
danke.
-
Arbeite doch einfach mit Sleep();
... ShellExecute(...Bla...); Sleep(3000); // 3 sec. warten, in der Zeit wird die Batch erstellt... foo(); ...
Ist zwar net das beste, aber naja...
-
du kannst mit waitforsingleobject arbeiten:
SHELLEXECUTEINFO sei; ZeroMemory( &sei, sizeof( sei ) ); sei.cbSize = sizeof( sei ); sei.fMask = SEE_MASK_NOCLOSEPROCESS; sei.lpFile = exe; sei.lpParameters = parameters; sei.lpDirectory = dir; sei.nShow = SW_SHOW; ShellExecuteEx( &sei ); if ( sei.hProcess ) { // warte bis der prozess beendet wurde.... WaitForSingleObject( sei.hProcess, INFINITE ); CloseHandle( sei.hProcess ); }
-
Das ist natürlich eine bessere Methode, aber wenn du dir nicht viel Mühe machen möchtest, wäre Sleep() besser ...