Problem mit CreateProcess



  • Moin,

    ich arbeite momentan an einer prvaten GUI-Anwendung, die etwas Formatieren soll.
    Ich rufe dazu die Windows Routine "Format.com" auf und übergebe die entsprechenden Parameter.

    STARTUPINFOA info = {sizeof(info)};
    	PROCESS_INFORMATION processInfo;
    
    	if (!CreateProcessA(syspath,const_cast<char*>(command.str().c_str()) ,
            NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
    	{
    		msg.setText("FAIL!");
    		msg.exec();
    		return;
    	}
    	WaitForSingleObject(processInfo.hProcess, INFINITE);
    
    	CloseHandle(processInfo.hProcess);
    	CloseHandle(processInfo.hThread);
    

    dabei ist syspath:

    char syspath[MAX_PATH];
    	GetSystemDirectoryA(syspath,MAX_PATH);
    	strcat(syspath,"\\");
    	strcat(syspath,"Format.com");
    

    und der command stream:

    D: /V:Test /FS:FAT32 /q /x /y
    

    Wenn ich das ganze per WinExec mache ist das absolut kein Problem, jedoch soll WinExec ja bei >16Bit Systeemen instabil sein. Deswegen wollte ich auf createProcess zurückgreifen. Es erscheint auch kurzzeitig ein Konsolenfesnetr, diesesschließt sich jedoch sofort wieder. Wo liegt der Denkfehler?

    Gruß,

    Nils



  • Hat sich erledigt. Wenn ich den ersten Parameter auf 0 setzte und damit dann die Konsole anspreche funktioniert es wunder. Und tschuldigung für die Rechtschreibfehler oben.

    Gruß,

    Nils


Anmelden zum Antworten