002
23.11.2004, 13:40 Uhr
~CRaffeEsNicht
Gast
|
Also , dass ist der Codeschnipsel den ich gefunden habe. Der Fehler ist weg, es fehlte eine Klammer...
Aber ich habe nochmal eine andere Frage, was muss ich denn machen, dass das auch funktioniert?
C++: |
bool StartProcessAndWait ( CString process, CString params, CString title, int show) { static STARTUPINFO StartupInfo; static LPSTARTUPINFO lpStartupInfo = &StartupInfo; static PROCESS_INFORMATION ProcessInfo; static LPPROCESS_INFORMATION lpProcessInfo = &ProcessInfo;
lpStartupInfo->cb = sizeof ( STARTUPINFO ); lpStartupInfo->lpDesktop = NULL; lpStartupInfo->lpTitle = title.GetBuffer(0); lpStartupInfo->dwX = 0; lpStartupInfo->dwY = 0; lpStartupInfo->dwXSize = 0; lpStartupInfo->dwXSize = 0; lpStartupInfo->dwFlags = STARTF_USESHOWWINDOW; lpStartupInfo->wShowWindow = show;
CString start; start+=process; start+=" "; start+=params; if (!CreateProcess(NULL, start.GetBuffer(start.GetLength()), (LPSECURITY_ATTRIBUTES) NULL, (LPSECURITY_ATTRIBUTES) NULL, false, CREATE_NEW_CONSOLE, (LPVOID) NULL, (LPTSTR) NULL, lpStartupInfo, lpProcessInfo)) { CString strError; DWORD errCode = GetLastError(); strError.Format("Fehlercode: %i - ",errCode); return false; }
WaitForSingleObject(lpProcessInfo->hProcess, INFINITE); return true; }
|
CString process->Pfad der auszuführenden Datei CString params->Parameter für die zu startende Exe, kann auch leerstring sein CString title-> Name der zu startenden Anwendung,kann auch leerstring sein int show-> Anzeigeart des neuen Programms
Aber wo muss ich denn diese Strings "füllen"??? Habe jetzt vor den static jetzt eingefügt:
C++: |
bool StartProcessAndWait ( CString process, CString params, CString title, int show) {
process = "C:\la\la\la.exe"; params = " "; title = " "; show = SW_SHOWNORMAL;
static STARTUPINFO StartupInfo; static LPSTARTUPINFO lpStartupInfo = &StartupInfo
|
aber es passiert nichts... muss ich das noch irgendwie starten??? |