Veröffentlicht 9. Mai 200619 j Hallo zusammen! Habe folgenden Code, mit dem ich einen externen Prozess starte. Das ganze soll auf einem Zielsystem mit WinCE4.2 geschehen. Wird das nun ausgeführt klappt auch alles. Soweit ok. Nur popt dabei die Win-Command-Shell auf (wohl durch den ersten Parameter von createProcess). Dies ist etwas unschön. Kennt jemand eine Lösung dafür, wie die Shell (bei WinCE) im Hintergrund bleibt und nur das aufgerufene Programm sich öffnet? Schonmal danke! Und hier ist der CODE (naja, der relevanet Ausschnitt): PROCESS_INFORMATION pi1 = {0}; #ifdef WIN32 STARTUPINFO StartupInfo; ZeroMemory(&StartupInfo, sizeof (STARTUPINFO)); StartupInfo.cb = sizeof (STARTUPINFO); StartupInfo.wShowWindow = SW_HIDE; StartupInfo.dwFlags = STARTF_USESHOWWINDOW; ZeroMemory(&pi1, sizeof (PROCESS_INFORMATION)); #endif TCHAR *pcExecName1 = TEXT("\\windows\\abcd.exe"); TCHAR *pcExecName2 = TEXT("\\windows\\efgh.exe"); TCHAR cExecBuf1[50] = {0}; TCHAR cExecBuf2[70] = {0}; cExecBuf1[0] = _T('\0'); cExecBuf2[0] = _T('\0'); _stprintf( cExecBuf1, TEXT(" /C %s"), pcExecName1 ); _stprintf( cExecBuf2, TEXT(" /C %s"), pcExecName2 ); if ( cExecBuf1[0] != 0 ) { if ( !CreateProcess( TEXT("CMD.EXE"),cExecBuf1,NULL,NULL,FALSE, #ifdef WIN32 NORMAL_PRIORITY_CLASS, #else 0, #endif NULL, NULL,#ifdef WIN32 &StartupInfo,#else NULL, #endif &pi1 ) )
9. Mai 200619 j Soll das folgendes heißen: if ( !CreateProcess( TEXT("ABCD.EXE"),cExecBuf1,NULL,NULL,FALSE, #ifdef WIN32 NORMAL_PRIORITY_CLASS, #else 0, #endif NULL, NULL,#ifdef WIN32 &StartupInfo,#else NULL, #endif &pi1 ) ) Aber was mache ich dann mit dem cExecBuf1, wo mein eigentlicher Programmaufruf drinsteht? Oder soll ich statt TEXT("CMD.EXE") einfach NULL eintragen?
9. Mai 200619 j Wie man CreateProcess benutzt, steht in der MSDN Library: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcecoreos5/html/wce50lrfCreateProcess.asp
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.