如何获取PyWin32进程的PID

4 投票
3 回答
4970 浏览
提问于 2025-04-18 00:50

我正在使用PyWin32扩展,通过我的Python代码进行一些Microsoft Office的计算。

这是我启动Word的方式:

import win32com.client

wordApp = win32com.client.Dispatch("Word.Application")
# calculations...
# Now, how do I get its PID?

我现在想弄明白的是如何获取wordApp的进程ID(PID),因为我没有使用subprocess模块,所以不能直接输入wordApp.pid

提前谢谢大家。

3 个回答

0

这段代码的意思是,首先创建一个叫做“application_name”的应用程序对象。

然后,它会打印出这个应用程序的进程ID,也就是它在电脑上运行时的唯一标识符,格式是“你得到了你的进程ID %d”。

0

我觉得myProcess是指向Word对象的一个引用,无法获取你的进程信息。

你可能需要连接到WMI(Windows管理工具)来获取进程的详细信息,比如:

objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")

希望我理解的问题是对的,这样能帮到你。

5

我正在做类似的事情,不过是处理Excel对象。为了获取进程ID,我是这样做的:

import win32process
import win32com
self.application = win32com.client.DispatchEx('Excel.Application')
t, p = win32process.GetWindowThreadProcessId(self.application.Hwnd)

在这些变量中,p就是进程ID(在任务管理器中显示的那个)。

希望这能帮到你,尽管时间已经过去了。

撰写回答