如何跟踪用winexec打开的进程,看其中途是否被终止?即中途用户安了取消按钮,则返回false,没有取消返回ture.

解决方案 »

  1.   

    用winexec是不行的,可以用createProcess()
    ::WinExec("notepad",SW_SHOW)等于PROCESS_INFORMATION ProcessInfo; 
    STARTUPINFO StartupInfo; //This is an [in] parameter
    ZeroMemory(&StartupInfo, sizeof(StartupInfo));
    StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field
    if(!CreateProcess("notepad", NULL, 
    NULL,NULL,FALSE,0,NULL,
    NULL,&StartupInfo,&ProcessInfo))

    MessageBox("The process could not be started...");
    return;
    }  
             WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
    CloseHandle(ProcessInfo.hThread);
    CloseHandle(ProcessInfo.hProcess);
      

  2.   

    无论是用WINEXEC还是CREATEPROCESS都无法知道那个被打开的进程在执行中做的动作,除非那个进程是你写的,你在其中加入了某种功能使之可以和外部其他进程进行通讯。