2011-09-26 56 views
2

我想从C++程序中启动MYAPPLICATION并立即退出C++程序(所以我不想等到MYAPPLICATION完成或获取对程序的引用):刚开始MYAPPLICATION并退出。ShellExecute async(从C++内部启动程序并立即退出)

我试过ShellExecute,但C++应用程序在MYAPPLICATION启动后仍在运行。我也试过使用线程,但如果我不等待线程,MYAPPLICATION根本不会启动。

if ((err = _waccess_s(MYAPPLICATION, 0)) == 0) 
    { 
     // application found 
     ShellExecute(NULL, _T("open"), MYAPPLICATION,NULL, NULL, SW_SHOWNORMAL); 

     // Create thread 1. 
     int Data_Of_Thread_1 = 1; 
     HANDLE Handle_Of_Thread_1 = 0; 
     HANDLE Array_Of_Thread_Handles[1]; 
     Handle_Of_Thread_1 = CreateThread(NULL, 0, Thread_no_1, &Data_Of_Thread_1, 0, NULL); 
     Array_Of_Thread_Handles[0] = Handle_Of_Thread_1; 
     WaitForMultipleObjects(1, Array_Of_Thread_Handles, TRUE, INFINITE); 
     CloseHandle(Handle_Of_Thread_1); 

    } 

如何从C++中启动MYAPPLICATION并立即退出C++应用程序?

谢谢。

+0

使用调试器。找出那个线程正在做什么。 –

回答

2

您需要在开始子进程后使用ExitProcess(),TerminateProcess()或从WinMain()返回来终止进程。

+0

做到了!谢谢 – Robbie

相关问题