Python обнаруживает нажатие клавиши в игре - PullRequest
0 голосов
/ 02 мая 2018

Поэтому я пытаюсь получить скрипт Python, чтобы определить, нажал ли я кнопку вставки, и, если он у меня есть, должен распечатать буфер обмена в файл.

У меня большая часть работает, но, похоже, игра поглощает мое обнаружение клавиатуры.

В настоящее время у меня есть:

keyboard.add_hotkey('k',writeToFile,args=[])

используя модуль клавиатуры, но он ничего не делает в игре. Вне игры все работает нормально.

1 Ответ

0 голосов
/ 02 мая 2018

Как ЧИТАТЬ говорит:

Другие приложения, такие как некоторые игры, могут регистрировать хуки, которые поглощают все ключевые события. В этом случае keyboard не сможет сообщать о событиях.

Если keyboard не может сообщить о событиях, он не может использовать их для вызова горячей клавиши.

Это может обойти его, просто дождавшись начала игры и только затем запустив свой скрипт. Если нет способа выйти из игры без выхода, конечно, это явно не стартер - но даже если вы можете сделать это, он все равно может не сработать.

А если нет, вы просто не можете перехватить события клавиатуры с помощью перехватчика глобальных событий. Что означает, что keyboard не может сделать для вас.

Но, поскольку здесь вы имеете дело с 18-летней игрой, возможно, есть обходной путь: вы можете запустить игру в эмуляторе или виртуальной машине, достаточно плавно, чтобы в нее можно было играть. Если это так, игра должна иметь возможность только глобально перехватывать события внутри эмулятора / виртуальной машины, а не в реальной системе, поэтому ваш перехватчик сможет сначала перехватывать события. (Возможно, вам все равно придется запускать скрипт в последний раз, или вам может потребоваться настроить Wine / VMware / любые другие параметры, но он может просто работать "из коробки".)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...