python揪出电脑莫名失去焦点的元凶

本文介绍了一个Python脚本,通过WindowsAPI获取当前活跃窗口的句柄、PID、类型等信息,用于监控并解决如RAR解压软件NetPowerTrip.exe引发的问题,如需对相关进程进行杀死或卸载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下

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程序总是调用,卸载就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值