Python实现鼠标点击获取窗口历程信息

守听  金牌会员 | 2025-3-10 22:18:18 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 997|帖子 997|积分 2991

最近遇到挺无解的一个问题:电脑上莫名其妙出现一个白色小方块,点击没有反应,关也关不掉,想知道它和哪个软件有关还是显卡出了问题,也找不到思路,就想着要不获取一下它的历程号看看。

于是写了一个Python脚本,可以通过鼠标点击快速获取恣意窗口的详细信息,包罗窗口标题、历程PID和程序路径。特别适合必要快速定位窗口来源或排查非常历程的场景。 
利用方法


  • 运行脚本后,屏幕会提示:点击恣意窗口开始检测 (按Ctrl+C退出)...
  • 将鼠标移动到目标窗口上方并点击
  • 控制台立刻表现类似以下信息:
  1. 窗口标题: 无标题 - 记事本
  2. 进程PID: 1234
  3. 程序路径: C:\Windows\System32\notepad.exe
复制代码
实现原理


  • 核心组件

    • pynput:监听全局鼠标点击变乱
    • pywin32:获取窗口句柄和历程ID
    • psutil:查询历程详细信息

  • 技能流程

    • 鼠标点击时捕获坐标位置
    • 通过WindowFromPoint获取对应窗口句柄
    • 利用GetWindowThreadProcessId提取历程ID
    • 通过psutil查询历程可执行文件路径
    • 最后输出窗口标题和历程信息

安装依赖

  1. pip install pynput pywin32 psutil
复制代码
注意事项


  • 必要Windows体系运行
  • 获取体系级窗口(如使命栏)大概表现路径为Unknown
  • 某些受保护历程大概必要管理员权限运行脚本
  • 点击速率过快大概导致坐标捕获偏差,建议点击后稍作停顿
完备代码

  1. import win32gui
  2. import win32process
  3. import psutil
  4. import signal
  5. import sys
  6. from pynput import mouse
  7. def signal_handler(sig, frame):
  8.     print("\n程序已退出")
  9.     sys.exit(0)
  10. def get_window_info(x, y):
  11.     hwnd = win32gui.WindowFromPoint((x, y))
  12.     _, pid = win32process.GetWindowThreadProcessId(hwnd)
  13.    
  14.     try:
  15.         process = psutil.Process(pid)
  16.         exe_path = process.exe()
  17.     except psutil.NoSuchProcess:
  18.         exe_path = "Unknown"
  19.    
  20.     title = win32gui.GetWindowText(hwnd)
  21.     return pid, exe_path, title
  22. def on_click(x, y, button, pressed):
  23.     if pressed:
  24.         pid, exe, title = get_window_info(x, y)
  25.         print(f"窗口标题: {title}")
  26.         print(f"进程PID: {pid}")
  27.         print(f"程序路径: {exe}\n")
  28. # 注册信号处理
  29. signal.signal(signal.SIGINT, signal_handler)
  30. with mouse.Listener(on_click=on_click) as listener:
  31.     print("点击任意窗口开始检测 (按Ctrl+C退出)...")
  32.     try:
  33.         listener.join()
  34.     except KeyboardInterrupt:
  35.         pass
复制代码
 于是破案:PowerToys!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表