Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Funktion zum ausführen einer cmd Datei

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.05.2004, 14:22 Uhr
spaxx



hi Leute,

wollte mal wissen, ob es eine Methode gibt, wie WinExec() system() etc., die eine Stapeldatei ausführen kann, aber wartet, bis die cmd-Datei abgearbeitet wurde. In VB soll es sowas geben. Da wird es ja in C++ auch sowas geben, oder. Ein Kumpel hat sich schon über C++ lächerlich gemacht, weil ich keine solche Methode in C++ kenne. Also enttäuscht micht nicht.

MFG SPAXX
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.05.2004, 15:05 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


z.b mit CreateProcess und dann warten per GetExitCodeProcess (beispiele dazu in Forum)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.05.2004, 09:59 Uhr
spaxx



habe jetzt folgendes gemacht:


C++:

                CString temp="";
                                temp.Format("C:\\test.cmd \\\\%s\\%s > \\\\yq0ye50l\\Prg\\diverse\\VBTools\\Protokolle\\tempVerbindung.doc",pVorlage->GetServername(),pVorlage->GetLayoutverzeichnis());
                STARTUPINFO si1;
                memset(&si1, 0, sizeof(STARTUPINFO));
                si1.cb = sizeof(STARTUPINFO);
                PROCESS_INFORMATION pi1;
                memset(&pi1, 0, sizeof(PROCESS_INFORMATION));
                CreateProcess(NULL,(LPTSTR)(LPCTSTR) temp, NULL, NULL, FALSE, 0, NULL, NULL, &si1, &pi1);
                GetExitCodeProcess(pi1.hProcess,&dw);





Aber der wartet trotzdem nicht. hab ich was vergessen??? oder was falsch gemacht???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.05.2004, 10:02 Uhr
spaxx



hab noch was vergessen. So ist es vollständig:


C++:
DWORD dw;

CString temp="";            
temp.Format("V:\\diverse\\VBTools\\Stapeldateien\\verbinden.cmd \\\\%s\\%s > \\\\yq0ye50l\\Prg\\diverse\\VBTools\\Protokolle\\tempVerbindung.doc",pVorlage->GetServername(),pVorlage->GetLayoutverzeichnis());
STARTUPINFO si1;
memset(&si1, 0, sizeof(STARTUPINFO));
si1.cb = sizeof(STARTUPINFO);
PROCESS_INFORMATION pi1;
memset(&pi1, 0, sizeof(PROCESS_INFORMATION));
CreateProcess(NULL,(LPTSTR)(LPCTSTR) temp, NULL, NULL, FALSE, 0, NULL, NULL, &si1, &pi1);
GetExitCodeProcess(pi1.hProcess,&dw);


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.05.2004, 10:11 Uhr
spaxx



habs mit WaitForSingleObject() gemacht. und es hat geklappt. Aber noch ne Frage, welcher Parameter ist dafür verantwortlich, das ganze im Hintergrund zu lassen??? Wie bei WinExec

MFG SPAXX
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: