Problem mit CreateProcess
-
Hallo,
ich will eine Anwendung über CreateProcess starten. Leider gibt es hierbei Probleme.
Hier mein Quellcode:
int CFileUpdater::UnpackArchive(CString File, CString Filepath, CString Programpath) { STARTUPINFO si; PROCESS_INFORMATION pi; CString CommandLine; CommandLine.Format("%s\\Update\\7z.exe", Programpath); if(CreateProcess(NULL, CommandLine, NULL, NULL, false, 0, NULL, NULL, &si, &pi)) { MessageBox("7z.exe started", 0, MB_OK); } else MessageBox("7z.exe error", 0, MB_OK);
Nur leider meckert er immer rum, dass er keinen CString in LPSTR umwandeln kann. Was kann ich da machen?
Gruß
Flo
-
http://msdn.microsoft.com/en-us/library/aa314880(VS.60).aspx
Benutze GetBuffer(..), und ReleaseBuffer(..) nicht vergessen.
Simon
-
Danke Simon, das funktioniert jetzt soweit
Nur läuft das Programm immer durch die else-Bedingung. Hab ich bei CreateProcess() irgendwas falsch gemacht?
-
Benutzte GetLastError(..) und Du wirst erfahren was falsch ist.
Ausserdem solltest Du die Handles in PROCESS_INFORMATION schliessen.
-
Ok habe ich gemacht, funktioniert jetzt, danke !