Aufruf eines Dos-Programms mit verstecktem Fenster



  • Ich möchte aus meinem Programm heraus ein Dos-Programm aufrufen. Das Dosfenster soll aber nicht zu sehen sein. Außerdem soll mein Programm warten, bis das Dos-Programm beendet ist. Dazu habe ich den folgenden Code geschrieben. Leider wird dabei ein Dosfenster im Vordergrund geöffnet. Woran kann das liegen? Wäre für Hilfe sehr dankbar!

    STARTUPINFO si;
    
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;
    PROCESS_INFORMATION pi;
    
    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    
    CreateProcess(NULL, importbefehl, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    
    WaitForSingleObject( pi.hProcess, INFINITE );
    
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
    


  • probiers mal mit shellexecute



  • Ich habe das mit shellexecute versucht:

    ShellExecute(m_hWnd, "open", importbefehl, NULL, NULL, SW_HIDE);
    

    Hier erscheint zwar kein Fenster, aber der aufgerufene Befehl wird nicht ausgeführt...


Anmelden zum Antworten