python - pynput 鼠标可以知道指针的形状是否是“手”吗?
问题描述
我创建了一个脚本,鼠标在屏幕上的随机位置单击。
唯一的问题是,如果该位置已经有东西,则不允许单击该位置。
我们必须点击一个没有人的位置。
这可以很容易地通过光标类型来区分。
如果光标是箭头,那么它是一个自由位置。如果光标是一只手,那么那里已经有人了。
设置鼠标位置后,有没有办法知道光标是箭头还是手?
代码在这里无关紧要,因为我要求更多的文档知识,但如果你必须看到:
from pynput.mouse import Button, Controller as mc
mouse = mc()
mouse.position = (xPos,yPos)
mouse.press(Button.left)
mouse.release(Button.left)
解决方案
在windows中,你可以用win32
它来做,一个最小的例子。经测试, is 时为正常光标,info[1]
is时为0
手形光标:info[1]
6
import win32gui
import time
while True:
time.sleep(1)
e = win32gui.GetIconInfo(win32gui.GetCursorInfo()[1])) # GetCursorInfo()[1] to get "HCURSOR",GetIconInfo to get the info about the cursor.
# print(e)
if e[1] == 0:
print("Now it is normal")
if e[1] == 6:
print("It is hand")
MSDN中的官方文档: GetIconInfo、GetCursorInfo
推荐阅读
- rdf - 如何为与它们相关的另一个类的每个实例都不同的实例创建计数属性?
- reactjs - ReactJS:动态更改 html/jsx 元素
- r - 在数据帧上使用 dplyr::union_all 而非其他行绑定方法的原因
- javascript - Discord BOT 对命令无响应且无控制台输出 (discord.js)
- python - 将列标签添加到条形图(Python-matplotlib)
- amazon-web-services - 使用 cloudformation 部署 ec2 实例
- c - 指针和嵌套结构如何工作?
- jenkins - 如何在输入布尔参数中添加 ArrayList
- javascript - Google Drive Web API 保存和下载 pdf
- mysql - Chart JS 2.x 不在工具提示中显示多个数据,并带有来自 MySql 数据库的回调