ShellExecute async (запустить программу из C ++ и сразу выйти) - PullRequest
2 голосов
/ 26 сентября 2011

Я хочу запустить MYAPPLICATION из программы C ++ и немедленно выйти из программы C ++ (поэтому я НЕ хочу ждать, пока MYAPPLICATION завершит работу, или получить ссылку на программу): просто запустите MYAPPLICATION и выйдите.

Я пробовал 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);

    }

Как я могу запустить MYAPPLICATION из C ++ и немедленно выйти из приложения C ++?

Спасибо.

1 Ответ

2 голосов
/ 26 сентября 2011

Вам необходимо завершить процесс, используя ExitProcess(), TerminateProcess() или вернувшись с WinMain() после запуска дочернего процесса.

...