2016-05-23 63 views
0

我有一些代码在每次循环时都会设置一个光标位置(我听说这是一种糟糕的方式,但是没有其他方法)每隔一段时间我都会收到一条消息外壳:Python 2.7.11 - 'SetCursorPos''访问被拒绝。'

回溯(最近通话最后一个): 文件 “C:\用户\ mjesionowski \桌面\ ExcelScript \ EXTRABETA.py”,线路211,在 win32api.SetCursorPos((200,95)) 错误:(5,'SetCursorPos','访问被拒绝')

任何帮助?

感谢, 梅森Ĵ

+0

受密码保护的屏幕保护程序,系统锁定等。 –

回答

0

MSDN doc列举至少两种情况下,像拒绝访问它可能会失败的东西:

  1. A window should move the cursor only when the cursor is in the window's client area.
  2. The input desktop must be the current desktop when you call SetCursorPos.

虽然我不知道,Windows正在执行实际1,它可能取决于鼠标或焦点是什么类型的应用程序:如果它是一个UAC窗口,那么你可能被禁止移动光标。同样,如果您位于安全桌面(当您执行Ctrl + Alt + Del时显示的内容)或者电台已锁定。

我的建议,如果你坚持做SetCursorPos()黑客,是忽略access denied错误,并希望它无论如何只是工作......或多或少。

+0

错误发生在我称之为的两行不同的代码中。我在每次调用SetCursorPos之前添加了time.sleep(0.01),并且没有更多的错误!绝对是一个“我不知道它为什么会起作用的例子,但是哦。”谢谢您的帮助。 –