crlong33 发表于 2021-8-1 21:10

pyqt5如何在界面外获得鼠标事件(不在界面上点击鼠标)

各位朋友们晚上好呀,困扰我好几天了,目前在学习pyqt5 python 学习。
想做一个界面,鼠标在桌面点击一下,如果是左键,就记录下来。
但是我只能在pyqt5做的界面上点击,能不能做一款在界面外,也就是我把它最小化了,点击电脑桌面,也可以获得鼠标的左键信息呢?
仅仅是获取鼠标坐标很简单,pyautogui就可以,但是这样信息太多,我只想记录鼠标左键按一下的时候,在记录他的坐标。这个怎么处理呢?
或者别的python库那些可以实现我的要求,求助啦,谢谢各位!

Domado 发表于 2021-8-1 22:15

判断点击桌面就比较复杂了,要调用Windows api
要这样做才行,
1. hook掉鼠标的SetWindowHookEx, 拦截点击消息
2. 取得点击坐标
3. 用GetWindowFromPoint获取点击窗口的句柄
4. 然后用GetDesktopWindow获取桌面的句柄进行对比较, 相等则说明点击的是桌面

ccwuax 发表于 2021-8-2 00:37

楼上正解,导入个windows api,也就是要导入个dll,网上相关资料很多,或者直接用一些HOOK的库应该也可以的

pzx521521 发表于 2021-8-2 10:08

2,3 L 正解
页: [1]
查看完整版本: pyqt5如何在界面外获得鼠标事件(不在界面上点击鼠标)