杀死在无限循环中运行的进程 我从C++代码创建一个进程,运行Python脚本。 STARTUPINFO si = {0}; PROCESS_INFOMATION pi = {0}; LPTSTR cmdArgs = _T("cmd.exe /k python myScript.py"); CreateProcess(NULL, cmdArgs, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);

杀死在无限循环中运行的进程 我从C++代码创建一个进程,运行Python脚本。 STARTUPINFO si = {0}; PROCESS_INFOMATION pi = {0}; LPTSTR cmdArgs = _T("cmd.exe /k python myScript.py"); CreateProcess(NULL, cmdArgs, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);,c++,windows,winapi,process,C++,Windows,Winapi,Process,脚本在无限循环中运行,例如: while (1): print("hello") 我想终止这个过程,但没有什么真正起作用。 使用pid执行TerminateProcess(),taskkill-他们报告该进程已终止,但仍在运行 如何在进程运行时终止进程 LPTSTR cmdArgs = _T("cmd.exe /k python myScript.py"); CreateProcess(NULL, cmdArgs, NULL, NULL, FALSE, CREATE_NEW_CONSO

脚本在无限循环中运行,例如:

while (1):
    print("hello")
我想终止这个过程,但没有什么真正起作用。 使用
pid
执行
TerminateProcess()
taskkill
-他们报告该进程已终止,但仍在运行

如何在进程运行时终止进程

LPTSTR cmdArgs = _T("cmd.exe /k python myScript.py");
CreateProcess(NULL, cmdArgs, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
此代码创建
cmd.exe
进程,并创建
python.exe
进程。问题-如何创建中间
cmd.exe
?!您需要直接启动
python.exe
。使用
“python myScript.py”
命令行并直接启动
python.exe
direct(如果使用unicode W api和空应用程序名,则字符串不能是只读的(在代码中它是只读的,所以您使用api,否则会出现异常))

TerminateProcess
不工作-因为您有cmd.exe的句柄,可以终止它。但不是
python.exe

带pid的taskkill-他们报告进程已终止,但仍会继续 跑步

当然-pid属于cmd.exe,并且它已终止。但是python.exe仍在运行


因此,同样-解决方案非常简单-直接执行目标进程,不带cmd.exe

如果您有权访问代码,请添加外部终止条件(如检测信号量或基于IPC的内容),该条件会不时进行测试,并且可以从另一个应用程序中进行设置…您确定要终止进程吗?你有足够高的权限吗?什么代码?python我不能改变它。是的,我确定具体的进程。告诉我们你是如何用TerminateProcess杀死它的。@rety
TerminateProcess
在我的回答中使用,对我来说很有效,simple
cmd
也可以使用inf循环可执行文件。这是一件愚蠢的事情,因为我不是Python程序员,但Python脚本不创建另一个具有不同句柄的进程/线程吗?您的错误是创建
cmd.exe
进程,这是毫无意义的。您需要直接创建目标进程。杀了它,不是你对的!不确定,我想我必须打开cmd来调用python。。谢谢