通过 C 或 Python 使用 win32 API 使用代码移动 Windows 鼠标光标非常简单。我们目前使用 Python 包pynput
来执行此操作。
我的问题专门针对 Windows 上的锁定屏幕。单击以触发登录用户名提示的显示后,我运行的 Python 脚本将停止读取或写入光标位置。
下面是我的测试脚本,它只是将鼠标向左或向右移动大约 1 英寸,每秒一次。
import time
from pynput.mouse import Controller as MouseController
mouse = MouseController()
oldX = oldY = 500
direction = -1
while True:
if mouse.position is not None:
oldX, oldY = mouse.position
mouse.position = (oldX + 100 * direction, oldY)
direction *= -1
time.sleep(1)
我运行此脚本,然后转到“开始”菜单并选择“锁定”。
我看到的第一个问题是mouse.position
变成None
. 所以我添加了if mouse.position is not None
它所以它没有出错,看看它是否只是在读取光标位置时失败,但是鼠标也停止向左或向右移动,所以它是读取和写入都失败了。
我的猜测是,这与安全/权限有关,Windows 会在用户登录时阻止任何软件访问用户输入,这很有意义。
我只是好奇这是已知的事情(甚至记录在案),还是有解决方法?
(如果有人想知道为什么,如果用户在流程中的任何一步(例如帮助他们登录)仍需要看护人,那么授予用户独立于物理鼠标/键盘的辅助设备的价值就会降低。)