pywin32连接到WMI接口获取指定名称程序路径
- 互联网
- 2025-09-14 02:51:02

pywin32 提供的 WMI(Windows Management Instrumentation)接口 是一组允许开发者访问和管理 Windows 操作系统各种信息的工具和接口。WMI 是微软提供的一种技术,旨在简化和统一对系统管理任务的编程访问,如硬件监控、软件安装、进程管理、事件日志等。在本文,我们将通过wmi接口来 实现查找指定名称程序路径。
获取方式 pip install -i mirrors.tuna.tsinghua.edu /pypi/web/simple pywin32 pywin32中的WMI 接口pywin32供了对 WMI 的全面封装,使 Python 开发者能够方便地访问和操作 WMI 提供的各种管理功能。主要通过win32com.client来实现。
win32com.client主要用于 COM 对象的创建和管理,WMI 主要通过 COM 接口进行访问。
实现思路在这里我们可以先使用win32com.client.GetObject('winmgmts:')来创建一个WMI服务对象并通过其'Win32_Process'实例来连接到进程池,接着遍历进程池获取各个进程名称并将其名称与给定程序的名称对比即可,这个实现思路实际上与我之前发布的这篇文的章思路一致使用python获取指定名字的程序的文件路径_使用python 编写找到特定文件名的路径的程序-CSDN博客 blog.csdn.net/weixin_73953650/article/details/144484344?spm=1001.2014.3001.5501
唯一不同的地方是这里我们使用pywin32实现,倘若你的项目中需要调用windowsAPI包含了pywin32,且不想额外下载psuti库来l实现上述功能,可以使用该方法。
源代码使用pywin32实现
import os import win32clipboard import win32com.client def find_process_path(exe_name:str,copy_to_clipboard:bool=True): '''该方法用来查找正在运行的名称为exe_name的程序的路径\n Args: exe_name:要查找的正在运行的进程的名称:比如Wechat.exe copy_to_clipboard:\t是否将查找到的程序路径复制到剪贴板\n ''' wmi=win32com.client.GetObject('winmgmts:') processes = wmi.InstancesOf('Win32_Process') for process in processes: if process.Name.lower() == 'Wechat.exe'.lower(): exe_path = process.ExecutablePath if exe_path: exe_path = os.path.abspath(exe_path) if exe_path: if copy_to_clipboard: win32clipboard.OpenClipboard() win32clipboard.EmptyClipboard() win32clipboard.SetClipboardText(exe_path) win32clipboard.CloseClipboard() print(f'已将{exe_name}路径复制到剪贴板') return exe_path return None print(find_process_path('Wechat.exe',False)) 说明1. wmi接口提供的进程池的每个进程的Name属性为其文件路径的小写名称,所以在代码中我们需要判断其与给定的exe文件名称的小写是否相等。
2. 该方法与psutil在遍历进程池查找指定名称的程序路径思路一致。 若你只是想简单查找,那么使用psutil即可,无需下载pywin32,pywin32库相较于psutil体积大。若你的代码中用到了pywin32相关模块,需要实现上述功能可以使用该方法。
pywin32连接到WMI接口获取指定名称程序路径由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“pywin32连接到WMI接口获取指定名称程序路径”