2016-05-23 4 views
0

У меня есть код, который устанавливает позицию курсора каждый раз, когда он петли. (Я слышал, что это плохой способ сделать это, но у вас нет альтернативного метода). Каждый раз я получаю это сообщение в оболочка:Python 2.7.11 - «SetCursorPos» Доступ запрещен. '

Traceback (самый последний вызов последнего): Файл "C: \ Users \ mjesionowski \ Desktop \ ExcelScript \ EXTRABETA.py", строка 211, в win32api.SetCursorPos ((200,95)) ошибка: (5, 'SetCursorPos', 'Доступ запрещен.')

Любая помощь?

Спасибо, Мейсон J

+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

Ошибка возникла бы в двух разных строках кода, где я его назвал. Я добавил time.sleep (0.01) перед каждым вызовом SetCursorPos и ​​без ошибок! Определенно случай «Я не знаю, почему это работает, но хорошо». Спасибо за помощь. –

Смежные вопросы