获取窗口句柄
只是查找某个窗口的句柄还是挺简单的,首先找到大窗口比如这里是“夜神模拟器”,然后再找子窗口,可以根据名字大致确定哪个是想要找到的子窗口。如果不是很确定,可以右键点击选中有一个“highlight”的按钮,点击后子窗口会高亮。或者右键点击子窗口选中“message”按钮,监听窗口,在相应的窗口移动鼠标看看有没有消息就知道选中的有没有问题。比如上图中的“sub”这个子窗口就没有相应的鼠标移动消息。
此处获取窗口句柄的代码就是:
wdname = u'夜神模拟器'
hwnd = win32gui.FindWindow(0, wdname) # 获取窗口句柄
hwnd=win32gui.FindWindowEx(hWnd,0,None,'ScreenBoardClassWindow')#获取子窗口句柄
简单调试
有时候只是单纯想看看这个窗口能不能收到消息。比如向此窗口发送一个点击消息。可以不用先获取窗口句柄,直接根据窗口句柄值转换带入就行了。
long_position=win32api.MAKELONG(0,0)#模拟鼠标指针 传送到指定坐标
downinfo=win32api.PostMessage(67678,win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON,long_position)#模拟鼠标按下
upinfo=win32api.PostMessage(67678,win32con.WM_LBUTTONUP,0,long_position)#模拟鼠标弹起
这里的“67678”是直接将16进制数“0001085E”转换为10进制带入的。以上,祝好!