使用PID强制终止当前程序的Python程序

使用PID强制终止当前程序的Python程序,python,python-3.x,windows,windows-10,pid,Python,Python 3.x,Windows,Windows 10,Pid,我正在制作一个python程序,它应该使用pid强制终止当前程序。它设计为与AHK一起运行。我在Windows10上 我将“os.getpid()”分配给“pid” 我试过使用 os.kill(pid,signal.SIGKILL) 命令终止程序的pid,但此命令仅在Linux上有效 我找到了另一个可行的解决方案,使用 操作系统(“taskkill/f/pid”) 指挥部。我的问题在于这个命令。我不知道如何格式化它以使用我分配给Earler的变量“pid” 这是我的密码: 导入操作系统 输入

我正在制作一个python程序,它应该使用pid强制终止当前程序。它设计为与AHK一起运行。我在Windows10上

我将“os.getpid()”分配给“pid” 我试过使用

os.kill(pid,signal.SIGKILL)
命令终止程序的pid,但此命令仅在Linux上有效

我找到了另一个可行的解决方案,使用

操作系统(“taskkill/f/pid”) 指挥部。我的问题在于这个命令。我不知道如何格式化它以使用我分配给Earler的变量“pid”

这是我的密码:

导入操作系统
输入信号
pid=os.getpid()
操作系统(“taskkill/f/pid”“pid”)
这种格式不起作用。我需要有关“os.system”(“taskkill/f/pid”“pid”)命令格式的帮助。(我还尝试了“os.system”(“taskkill/f/pid”os.getpid()))


这段代码应该已经杀死了我用于测试的python外壳。(但它没有)

可能是因为pid是一个字符串

idk如果我是对的,但是试试看

os.system(“taskkill/f”+pid)
“pid”
只是一个由三个字符组成的字符串。您应该将变量
pid
的值嵌入命令行:

os.system(f"ftaskkill /f /pid {pid}")
如果使用较旧的Python,请尝试

os.system("ftaskkill /f /pid {}".format(pid))

我计划用它来快速杀死一个全屏应用程序(比如一个视频游戏)。我知道有一些工具可以做到这一点,但我想自己做一个。你建议的解决方案不起作用,而是在Windows中使用代码“os.system(“taskkill/f/pid{}.format(pid)),
os.kill(pid,signal)
通过
终止进程(hProcess,signal)
实现,但仅适用于除0和1之外的
信号的值。
信号的值
用作过程退出状态。对于强制终止,我们希望它通常为1,但是
os.kill
的设计很糟糕,所以只需使用3即可。不存在的是signal.SIGKILL,因为与POSIX系统不同,Windows没有或使用内核信号。(它有粗略的等价物,如APCs、ALPC消息、窗口消息和控制台事件,但没有精确映射到POSIX信号的内容。)在这个答案中,“ftaskkill”应该是“taskkill”。使用
os.system
并不理想,因为生成一个控制台应用程序(如cmd.exe或taskkill.exe),当从没有控制台可继承的GUI应用程序运行时,会短暂刷新控制台窗口。最好使用
subprocess.call
creationflags=CREATE\u NO\u WINDOW
(例如,请参阅)。