【问题标题】:Mouse Events with Locked Computer锁定计算机的鼠标事件
【发布时间】:2014-04-16 08:50:25
【问题描述】:

我每 X 小时使用 Python 运行一次脚本,这是通过 RDP 完成的。在我关闭 RDP(我假设)后,屏幕“锁定”在计算机上。尝试使用以下代码移动鼠标时出现错误

def mclick(x,y):
    win32api.SetCursorPos((x,y))
    time.sleep(0.5)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

关闭 RDP 连接后运行脚本时出现的错误:

File "x", line x, in mclick
    win32api.SetCursorPos((x,y))
pywintypes.error: (0, 'SetCursorPos', 'No error message is available')

我认为这是因为 RDP 连接已关闭,因此它无法单击,除了不断保持此 RDP 连接处于活动状态之外,我该如何让它运行?

【问题讨论】:

  • 也许在运行脚本之前寻找一个 Windows API 调用来唤醒/解锁计算机?
  • @merlin2011 如果有这样的功能,那锁屏的安全性会怎样?
  • @DavidHeffernan,很好。 :)

标签: python winapi python-3.x pywin32 python-3.4


【解决方案1】:

当工作站被锁定时,调用SetCursorPos 失败。这是设计使然,并且是一项安全功能。您只需要捕获并忽略错误。

【讨论】:

  • 不幸的是,需要移动鼠标,为了解决这个问题,我从外部设置了一个服务器 rdp-ing,并在您的另一个答案中找到了一个空闲的鼠标移动,以防止它锁定。谢谢。
猜你喜欢
  • 2011-05-06
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多