使用流程,我可以执行以下操作:intpid;::CreateProcess(NULL,cmd,...,&pi);pid=pi.dwProcessId;::CloseHandle(pi.hProcess);//thenlater...HANDLEproc=::OpenProcess(PROCESS_TERMINATE,FALSE,pid);::TerminateProcess(proc,1);::CloseHandle(proc);以这种方式,我可以仅通过pid管理windows进程,这对于多平台代码来说非常好。我想将此模式扩展到作业对象:HANDLEjob=::CreateJobObj
我的应用程序正在作业中运行。我想使用OpenJobObject获取此Jobobject的句柄,以便稍后使用此句柄。问题是,我不知道作业名称,将NULL传递给作业名称会返回错误87(参数不正确)。我是这样尝试的:HANDLEhandle=OpenJobObject(JOB_OBJECT_QUERY,FALSE,NULL);if(!handle)printf("\nError%d",GetLastError());elseprintf("\nOK");我也在MSDN上找到了这个:应用程序无法获得运行它的作业对象的句柄,除非它具有作业对象的名称。但是,应用程序可以使用NULL调用QueryI
我正在使用我的应用程序中的System.Diagnostics.Process类创建新进程。我希望在/如果我的应用程序崩溃时终止这些进程。但是,如果我从任务管理器中终止我的应用程序,则子进程不会被终止。有没有办法让子进程依赖于父进程? 最佳答案 来自thisforum,归功于“乔什”。Application.Quit()和Process.Kill()是可能的解决方案,但已被证明是不可靠的。当您的主应用程序终止时,您仍然有子进程在运行。我们真正想要的是子进程在主进程结束时立即结束。解决方案是使用“工作对象”http://msdn.mi
我正在使用我的应用程序中的System.Diagnostics.Process类创建新进程。我希望在/如果我的应用程序崩溃时终止这些进程。但是,如果我从任务管理器中终止我的应用程序,则子进程不会被终止。有没有办法让子进程依赖于父进程? 最佳答案 来自thisforum,归功于“乔什”。Application.Quit()和Process.Kill()是可能的解决方案,但已被证明是不可靠的。当您的主应用程序终止时,您仍然有子进程在运行。我们真正想要的是子进程在主进程结束时立即结束。解决方案是使用“工作对象”http://msdn.mi