EXE unsichtbar ausführen



  • Hallo,

    ich habe diesen Code:

    PROCESS_INFORMATION pi = {0};
    STARTUPINFO si = {sizeof(si)};
    si.wShowWindow = SW_HIDE;
    
    ::CreateProcess( NULL, _T("\"cmd.exe\" /c devcon.exe listclass USB > usb.dat"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi); 
    ::WaitForSingleObject( pi.hProcess, INFINITE); 
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    

    Mein Ziel ist es, von der devcon.exe (von MS) die Hardwareinformationen über den USB-Bus in die Datei usb.dat schreiben zu lassen.
    Mein Programm soll die Datei dann wieder auslesen.
    (Ich wüsste nicht, wie ich sonst an die Infos komme...)

    Durch SW_HIDE sollte es aber doch unsichtbar sein...???
    Bei mir wird aber eine Box angezeigt... (sie verschwindet gleich wieder, aber trotzdem...

    Kann mir jemand sagen, was da falsch ist?

    mfg
    trequ



  • Machs mal so

    STARTUPINFO si = { sizeof(STARTUPINFO) };
    PROCESS_INFORMATION pi = {0};
    BOOL bSuccess;
    
      si.dwFlags = STARTF_USESHOWWINDOW;
      si.wShowWindow = SW_HIDE;
    
      bSuccess = CreateProcess ( NULL, _T("\"cmd.exe\" /c devcon.exe listclass USB > usb.dat"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
    

    Gruß
    :: NoName ::


Anmelden zum Antworten