0

通过 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 会在用户登录时阻止任何软件访问用户输入,这很有意义。

我只是好奇这是已知的事情(甚至记录在案),还是有解决方法?

(如果有人想知道为什么,如果用户在流程中的任何一步(例如帮助他们登录)仍需要看护人,那么授予用户独立于物理鼠标/键盘的辅助设备的价值就会降低。)

4

0 回答 0