Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: G-virus от Февраль 05, 2010, 23:48



Название: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: G-virus от Февраль 05, 2010, 23:48
Почему-то не получается хватать клавиши в фоновом режиме. То есть окно должно быть обязательно активно. Как это убрать с помощью SetWindowsHookEx()? Какие флаги нужно поставить?


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: cya-st от Февраль 06, 2010, 21:32
Мое мнение, что хуки лучше всего делать в Visual C++. Не стоит все и полностью переписывать под QT, все равно хуки в линуксе работать не будут. Тогда какой смысл делать это в QT?


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: G-virus от Февраль 06, 2010, 22:29
Мое мнение, что хуки лучше всего делать в Visual C++. Не стоит все и полностью переписывать под QT, все равно хуки в линуксе работать не будут. Тогда какой смысл делать это в QT?

Я пишу не под линукс а под винду


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: cya-st от Февраль 06, 2010, 22:34
Цитировать
Я пишу не под линукс а под винду
Тем более лучше написать на VS. Кросплатформенность не нужна, если вы под винду пишете. QT является  кросплатформенной библиотекой C++.


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: SimpleSunny от Февраль 06, 2010, 23:14
А как можно сравнивать IDE Visio Studio и библиотеку Qt? =)


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: lit-uriy от Февраль 06, 2010, 23:52
Есть такая библиотека Qxt (http://docs.libqxt.org/index.html), расширяющая Qt, а вней есть класс QxtGlobalShortcut (http://docs.libqxt.org/0.5.0/classQxtGlobalShortcut.html)
Ловите себе сочетания клавиш глобально на любой платформе.


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: G-virus от Февраль 07, 2010, 00:39
Есть такая библиотека Qxt (http://docs.libqxt.org/index.html), расширяющая Qt, а вней есть класс QxtGlobalShortcut (http://docs.libqxt.org/0.5.0/classQxtGlobalShortcut.html)
Ловите себе сочетания клавиш глобально на любой платформе.

дык ловить получается :) Просто прога в фоновом режиме не ловит. Допустим если писать серверное приложение, то там в фоновом режиме работает readClient(), пофиг, активно приложение или нет. А тут такая заморочка, что если окно не активно, прога не хватает клавиши, а если активно - все отлично работает


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: lit-uriy от Февраль 07, 2010, 23:04
>>дык ловить получается
только когда программа в фокус имеет, а я про глобальный отлов.
Класс QxtGlobalShortcut не просто так сделан.


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: G-virus от Февраль 07, 2010, 23:44
Класс QxtGlobalShortcut

А как его поставить?


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: cya-st от Февраль 08, 2010, 11:47
Цитировать
А как можно сравнивать IDE Visio Studio и библиотеку Qt? =)
Visio тут причем, да еще и Studio ;D?


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: lit-uriy от Февраль 08, 2010, 13:48
>>А как его поставить?
Смотри руководство по Qxt (ссылку на эту библиотеку я указал несколькими сообщениями выше)


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: G-virus от Февраль 08, 2010, 15:15
Смотри руководство по Qxt (ссылку на эту библиотеку я указал несколькими сообщениями выше)

Спасибо


Название: Re: WinAPI SetWindowsHookEx() и QKeyEvent
Отправлено: IGHOR от Апрель 21, 2010, 03:08
Одно смущает  "Note: QxtGlobalShortcut requires QxtApplication."
А здесь есть хороший пример хуков GlobalShortcut:
http://mumble.sourcearchive.com/documentation/1.1.8/dir_3180e0fd78199f30e2245b05c54bf75a.html