gpt4 book ai didi

c++ - 终止进程以 ShellExecuteEx 启动

转载 作者:太空狗 更新时间:2023-10-29 21:25:54 27 4
gpt4 key购买 nike

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 终止启动的进程!这怎么可能?

谢谢

最佳答案

要终止进程,您必须使用 TerminateProcess 函数。但是,它接收一个进程句柄作为参数:

TerminateProcess(shellExInfo.hProcess, 1);

如果出于某种原因你只存储进程 ID 而不是句柄,那么你应该首先使用 OpenProcess 函数打开一个句柄:

HANDLE h = OpenProcess(PROCESS_TERMINATE, false, process_id);
TerminateProcess(h, 1);
CloseHandle(h);

关于c++ - 终止进程以 ShellExecuteEx 启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13193719/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com