|
35 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 210
|
|
Как отловить сочетания клавиш в полноэкранном режиме?09.08.2013, 17:53. Показов 5003. Ответов 16
Метки нет (Все метки)
Задача: отлавливать некоторые комбинации клавиш, при этом не мешая работе приложений, выполняющихся в полноэкранном режиме.
Насколько я себе это представляю, нужно жестко закрепить фокус на окне (в моем случае создано с помощью Tkinter), а затем скрыть это самое окно. Возможно, ошибаюсь. Подскажите, пожалуйста, направление поиска.
0
|
|
| 09.08.2013, 17:53 | |
|
Ответы с готовыми решениями:
16
Как отловить запуск программы в полноэкранном режиме* Отловить нажатие сочетания клавиш
|
|
35 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 210
|
|
| 14.08.2013, 05:23 [ТС] | |
|
Вообще никак? :-( Может с помощью другого модуля?
0
|
|
|
26 / 26 / 6
Регистрация: 19.10.2012
Сообщений: 131
|
|
| 14.08.2013, 16:57 | |
|
Для этого лучше пользовать AutoIt или нечто вроде. Вы не в том направлении пошли.
0
|
|
|
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
|
|
| 15.08.2013, 01:50 | |
|
Тебе нужно найти как называется метод обрабатывающий нужное событие, на пример в pyqt нужно переопределить спец метод и назначить нужное для себя действие.
0
|
|
|
35 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 210
|
|
| 18.08.2013, 07:57 [ТС] | |
|
dhxdzjbr, дело обстоит так: имеется python-приложение, в котором задействован Tkinter. Написана работающая программка, которая реагирует на определенные комбинации клавиш и выполняет в связи с этим определенные действия. НО: работает данная программка только когда фокус ввода направлен на окно Tkintera.
Мне бы не хотелось отходить от Tkinter (т.к. программка почти готова), но если с Tkinter' ом не сделать, буду рад услышать другие методы решения задачи.
0
|
|
|
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
|
||
| 18.08.2013, 16:02 | ||
|
Я думаю это скорее всего не возможно. Зачем тебе это?
Добавлено через 3 часа 25 минут Думал вот над твоей задачей, нормального решения её думаю нет, нужно придумывать извращенные способы, типо того какой ты предложил.
1
|
||
|
35 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 210
|
|
| 18.08.2013, 16:12 [ТС] | |
|
dhxdzjbr, предложите вашу реализацию, основываясь на моем "извращенном" способе.
focus_force у меня почему-то работает не так, как я предполагал.
0
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 18.08.2013, 16:13 | |
|
Можете ещё код AutoKey посмотреть (если охота разбираться). Судя по всему, модуль interface.py. В AutoKey как раз хуки делаются, правда, без Tkinter.
1
|
|
|
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
|
||
| 18.08.2013, 16:33 | ||
|
В PyQt есть метод hide, которым можно скрыть окно и если задать специальный тип окна, оно будет перекрывать другие окна. Добавлено через 3 минуты Кстати dmitr_111, ты так и не ответил зачем это тебе? Может вообще можно придумать другой подход.
0
|
||
|
35 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 210
|
|
| 18.08.2013, 16:44 [ТС] | |
|
Делаю некое подобие интернет-рации. Нажимаешь комбинацию клавиш, приложение их обрабатывает, отсылает куда надо и все. Дело сделано.
На Tkinter делаю из-за того, что быстро нашел там подходящие методы и ничего дополнительно скачивать не нужно, ибо стандартный модуль.
0
|
|
|
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
|
|
| 18.08.2013, 17:00 | |
|
Это конечно все прекрасно, но вы не описали самое главное, какие действия вы хотите, чтобы обрабатывались при свёрнутом окне. Почему просто не сделать нужную кнопку в окне и все?
0
|
|
|
35 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 210
|
|||
| 18.08.2013, 17:06 [ТС] | |||
|
Игра работает на весь экран, и нечего там кнопочки выводить ![]() А хочу я, чтобы на определенный адрес отправлялся некий код. Код получается исходя из нажатой комбинации. На сервере данный код обрабатывается, и дальше уже не важно ![]() Стоп стоп стоп Нажатые комбинации клавиш. В самом начале сказано.
0
|
|||
|
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
|
||
| 18.08.2013, 17:31 | ||
|
Кажется только сейчас более менее понимаю, что вы хотите.
В принципе идея с тем, чтобы скрыть окно не такая и безумная. Можно, когда скрываешь окно сделать очень маленьким, чтобы не не мешало другим приложениям или вообще разместить его по отрицательным координатам. В общем прорабатывай идею с тем, чтобы скрыть окно и сделать его по верх других. Кстати для твоих целей тебе не focus_force() нужен. focus_force() просто переводит фокус на нужный виджет, чтобы ты в него мог на пример ввести данные. Для твоих целей вроде нужен grab_set_global(). Я в этом не уверен, сверься с докой на всякий случай.
1
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 18.08.2013, 17:49 | |
|
Если игра - на винде, что ли? Может, на AutoHotkey проще написать?
0
|
|
|
35 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 210
|
|
| 18.08.2013, 18:07 [ТС] | |
|
Раньше раз на 10 перечитал страницу на Викиверситете, а на grab_set_global() даже внимания не обращал...
Добавлено через 46 секунд helter, мне на питоне хочется
0
|
|
|
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
|
|
| 18.08.2013, 18:13 | |
|
Сейчас опять читал доку, про grab_set_global() скорее всего ошибся.
Похоже тебе нужно: withdraw - этот метод сделает окно невидимым. Ещё поиграйся со следующими методами: tkraise - размещает поверх всех других окон. grab_set - устанавливает фокус на окно, даже при наличии открытых других окон.
0
|
|
|
35 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 210
|
||||||
| 19.08.2013, 13:52 [ТС] | ||||||
|
Кое-как откопал решение. С tkinter не связано, но все равно. Всего то и нужно было в поиск забить "глобальный перехват нажатия клавиш Python". Сразу оговорюсь, додумался не сам
![]() Вот код(оригинал немного подправил):
0
|
||||||
| 19.08.2013, 13:52 | |
|
Помогаю со студенческими работами здесь
17
Как сделать игру в полноэкранном режиме? Как запустить приложение в полноэкранном режиме?
Как запустить Google Chrome в полноэкранном режиме? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|