Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Msdos-befehl versteckt ausführen

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
17.03.2003, 15:41 Uhr
~Blink367
Gast


Hallo,
ich weiß dass die folgende Frage bereits in den FAQ zu finden ist, ich komm aber trotzdem nicht damit zurecht. ;-(
Ich habe die Datei auto.exe (MSDOS-Programm), die beim Ausführen 0 für erfolgreich, 1 für erfolgreich mit Fehler zurückgibt. Diese Datei möchte ich nun ausführen, und zwar ohne aufblinkendes MSDOS-Fenster, und den Rückgabewert auffangen. Mit ShellExecute bin ich immerhin schon soweit, dass ich die Datei versteckt ausführen kann, ich erhalte aber leider nur die Rückgabe ob die Datei ausgeführt werden konnte oder nicht, und nicht welchen Rückgabewert sie genau geliefert hat.

Mfg
Blink
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.03.2003, 16:33 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo probier mal folgendes:


C++:
STARTUPINFO si;
SECURITY_ATTRIBUTES saProc;
PROCESS_INFORMATION piProc;
ZeroMemory(&si, sizeof(si));
si.wShowWindow=ShowWindow(SW_HIDE);
saProc.nLength = sizeof(saProc);
saProc.lpSecurityDescriptor = NULL;
saProc.bInheritHandle = FALSE;
::CreateProcess((LPCSTR)"auto.exe",NULL,&saProc, NULL,FALSE,0,NULL,(LPCSTR)".",&si,&piProc);
  m_hClient = piProc.hProcess; // m_hClient eine Membervariable des Typs HANDLE

  SetTimer(1,10,NULL);

//...

void CTestDlg::OnTimer(UINT nIDEvent)
{
  switch(nIDEvent)
  {
  case 1:
    {
      DWORD status = 0;
      GetExitCodeProcess(m_hClient,&status);
      if(status != STILL_ACTIVE)
      {
        KillTimer(1);
        switch(status)
        {
         case 0:
             {
                 // erfolgreich
             } break;
         case 1:
             {
                 // fehler
             } break;
        }
      }
    } break;
  }
  CDialog::OnTimer(nIDEvent);
}


--
class God : public ChuckNorris { };

Dieser Post wurde am 17.03.2003 um 16:33 Uhr von FloSoft editiert.
 
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: