Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 1, 2018 11:59:14

Sama
Зарегистрирован: 2018-09-01
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Направление горячих клавиш конкретному окну (программе)

Добрый день, уважаемые форумчане.
Прошу помочь не с написанием готового, а с указанием направления, чтобы я сам все с пониманием сделал.
Задача следующая: написать скрипт для windows, который будет висеть фоном и по нажатию заданных сочетаний клавиш будет направлять их только конкретному окну (программе) вне зависимости от того, в фокусе данное окно (программа) или нет. Выбирать предположительно буду по id процесса, т.к. это единственный уникальный идентификатор.
На данный момент я примерно представляю логику моего скрипта следующим образом:
1) при запуске скрипта в цикле ‘while true’ будeт с низкой задержкой отлавливаться нажатия клавиш до тех пор, пока не будет получено совпадение с заданными в скрипте (если все нажатия будут отлавливаться, как это скажется на нагрузке системы и работы других программ с хоткеями?),
2) при наличии совпадения нажатое сочетание клавиш будет передаваться заданной по pid программе.
Вопрос в том, какие модули для python позволят отследить эти нажатия (кейлоггер получается?), а какие - транслировать их определенному окну.
Буду благодарен за любую помощь.

P.S. python 3.7, windows 10.

Офлайн

#2 Сен. 4, 2018 13:29:15

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Направление горячих клавиш конкретному окну (программе)

Sama
1) при запуске скрипта в цикле ‘while true’ будeт с низкой задержкой отлавливаться нажатия клавиш до тех пор, пока не будет получено совпадение с заданными в скрипте
Если уж нужно онли под венду то почему не использовать хуки?
http://rsdn.org/article/baseserv/winhooks.xml
https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-setwindowshookexa
они собсна для того и придуманы, чтобы не висело в памяти туева хуча приложений бесконечно опрашивающих состояние клавиатуры..

Sama
Вопрос в том, какие модули для python позволят отследить эти нажатия (кейлоггер получается?)
ну например keboard https://pypi.org/project/keyboard/ хотя на самом деле их(модулей для перехвата хоткеев) более чем дохрена для пайтона, можете выбирать любой, а можете написать свой с преферансом и стюардесами

Sama
какие - транслировать их определенному окну.
ну можно использовать ВинАПИ , у него для этого есть достаточно много функций для этого
SendInput , keybd_event, SendMessage , PostMessage…





==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version