在 Windows 锁定屏幕上以编程方式移动鼠标光标

问题描述

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

我只是想知道这是否是已知的事情(甚至已记录在案),或者是否有解决方法

(如果有人想知道为什么,如果用户在此过程中的 1 个步骤仍然需要看护者(例如帮助他们登录),那么让用户独立于物理鼠标/键盘的辅助设备的价值就降低了。)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)