代码如下
import pygetwindow as gw
import psutil
import win32process
def get_process_id(hwnd):
# 使用 Windows API 获取窗口句柄对应的进程 ID
_, pid = win32process.GetWindowThreadProcessId(hwnd)
return pid
def get_active_window_info():
process_name = "pycharm64.exe" # 我用的pycharm,所以第一个窗口要排除
while process_name == "pycharm64.exe":
# 获取当前激活的窗口
active_window = gw.getActiveWindow()
# 获取窗口句柄值
hwnd = active_window._hWnd
# 获取窗口类型
window_type = active_window.__class__.__name__
# 获取窗口进程的 PID
pid = get_process_id(hwnd)
# 获取进程名称和路径
process_name = psutil.Process(pid).name() if pid else None
process_path = psutil.Process(pid).exe() if pid else None
# 返回窗口信息
return {
'hwnd': hwnd,
'pid': pid,
'window_type': window_type,
'process_name': process_name,
'process_path': process_path
}
# 获取当前激活窗口的信息
window_info = get_active_window_info()
print(window_info)
根据返回的结果找到对应的程序,杀死进程或是直接卸载程序就可以了。
我找到的原因是RAR解压缩软件的NetPowerTrip.exe程序总是调用,卸载就好了。