1)我用ShellExecuteEx启动了一个进程
2)使用以下命令检索PID
GetProcessId(shellExInfo.hProcess)示例代码:
SHELLEXECUTEINFO shellExInfo;
shellExInfo.cbSize = sizeof(SHELLEXECUTEINFO);
shellExInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shellExInfo.hwnd = NULL;
shellExInfo.lpVerb = "open";
shellExInfo.lpFile = processToStart.c_str();
shellExInfo.lpParameters = processParams.c_str();
shellExInfo.lpDirectory = NULL;
shellExInfo.nShow = SW_SHOW;
shellExInfo.hInstApp = NULL;
ShellExecuteEx(&shellExInfo); // start process
GetProcessId(shellExInfo.hProcess); // retrieve PID现在我想用给定的PID杀死已启动的进程!这怎麽可能?
Thx
发布于 2012-11-02 18:50:29
要终止进程,必须使用TerminateProcess函数。但是,它会将进程的句柄作为参数接收:
TerminateProcess(shellExInfo.hProcess, 1);如果由于某种原因,您只存储了进程id,而没有存储句柄,那么您应该首先使用OpenProcess函数打开一个句柄:
HANDLE h = OpenProcess(PROCESS_TERMINATE, false, process_id);
TerminateProcess(h, 1);
CloseHandle(h);https://stackoverflow.com/questions/13193719
复制相似问题