python实现查看窗口进程pid

#coding=utf-8
#date 2020.12.23
#depand:python3.8,win32
#描述:鼠标悬停窗体2秒输出进程名和PID
from win32 import win32gui,win32process   
import time
import sys

def get_PID(point):
    try:
        p=win32gui.WindowFromPoint(point)    
        p_name=win32gui.GetWindowText(p)
        _,p_id=win32process.GetWindowThreadProcessId(p)
        print(p_name,p_id)
    except:
        print("win32获取窗体信息失败 error")
        sys.exit(1)

def main():
    while True:
        point1 =win32gui.GetCursorPos()#获取鼠标坐标
        time.sleep(2)
        point2 =win32gui.GetCursorPos()#获取鼠标坐标
        if point2 == point1:
           get_PID(point2)
if __name__ == "__main__":
    main()
  

首先安装第三方库:pin install pywin32

使用Pyinstaller打包,打包完大概6.7mb,这也是Python无奈的地方,随便几行代码就这么大,最好还是用编译语言实现,几十kb就行了。本例中代码量不多,但是看win32的开发文档过程还是蛮痛苦的,希望能给大家提供一些思考问题的思路。Python版最后执行效果如下:

Input Flyout 6840
Chrome Legacy Window 13060
Chrome Legacy Window 13060
微信 13912
微信 13912
微信 13912
微信 13912

你可能感兴趣的:(Python小技巧,python,开发语言)