Python 杀戮式任务管理器

Python 杀戮式任务管理器,python,ms-word,pid,Python,Ms Word,Pid,在任务管理器[Windows 8+]中的“进程”选项卡中,它列出了当前正在运行的所有进程。如果我们打开MS Word的两个窗口,它只会出现一次,但是这实际上是一个组,可以扩展以分别查看和结束这两个任务 这很好,但是它不会转到列出WINWORD.EXE的“详细信息”选项卡,而是只出现一次!因此只有1个PID!共享PID是一个问题,因为试图关闭PID会导致整个PID关闭 我只想杀死一个特定的word窗口,而不是所有的word窗口,当我试图通过编程方式杀死windows时(目前我通过python中的导

在任务管理器[Windows 8+]中的“进程”选项卡中,它列出了当前正在运行的所有进程。如果我们打开MS Word的两个窗口,它只会出现一次,但是这实际上是一个组,可以扩展以分别查看和结束这两个任务

这很好,但是它不会转到列出WINWORD.EXE的“详细信息”选项卡,而是只出现一次!因此只有1个PID!共享PID是一个问题,因为试图关闭PID会导致整个PID关闭

我只想杀死一个特定的word窗口,而不是所有的word窗口,当我试图通过编程方式杀死windows时(目前我通过python中的
导入操作系统
使用
taskkill
,没有额外模块的任何其他方法也可以)

现在当我运行
taskkill。。。。“WordDoc.docx”
它杀死了每一个打开的word文档,这些文档非常烦人,可能会丢失数据。有没有一种方法可以像在任务管理器中那样杀死“进程”

多谢各位


PS我没有使用/T,因此这不是问题所在

在“流程”选项卡上关闭流程的单个窗口时,任务管理器不会终止该窗口所属的流程,而只是向该窗口发送一条
WM\u CLOSE
消息。您会注意到Word窗口并没有“终止”,因为您仍然会得到一个提示,提示您保存Word文档中未保存的更改

您可以使用以下代码执行与任务管理器相同的操作,该代码枚举所有顶级窗口,然后在窗口标题与所需值匹配时发送WM_CLOSE:

import win32gui

def enumHandler(hwnd, lParam):
    if win32gui.IsWindowVisible(hwnd):
        if 'My Word Document' in win32gui.GetWindowText(hwnd):
            win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)

win32gui.EnumWindows(enumHandler, None)     

是否使用通常预加载的模块来代替tho?(我很感激你的回答,但是如果我能使用python安装的东西会更好,即使它是OS依赖的,比如OS.ETC()。谢谢你的时间,你也应该导入win32con,因为你的代码不起作用;),但我仍然想要一个本机解决方案,它只适用于其他人:)