Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
jim1406 |
29.4.2009, 8:59
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0
|
Доброго времени суток!
Нужно перехватить глобальное клавиатурное сочетание в Windows. Подскажите, как это сделать? (без сторонней библиотеки). Qt 4.5 |
|
|
|
|
kwisp |
29.4.2009, 10:30
Сообщение
#2
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
jim1406,
что пробовал делать для того чтобы перхватывать? QWidget::winEvent(MSG*,long*)[virtual protected] -- смотрел? |
|
|
|
|
sploid |
29.4.2009, 11:06
Сообщение
#3
|
|
Студент ![]() Группа: Участник Сообщений: 51 Регистрация: 26.2.2008 Из: Москва Пользователь №: 106 Спасибо сказали: 10 раз(а) Репутация: 1
|
посмотри это:
Link |
|
|
|
|
Litkevich Yuriy |
29.4.2009, 12:11
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
jim1406, может просто подсмотреть как это делается в том же libqxt?
|
|
|
|
|
jim1406 |
30.4.2009, 4:45
Сообщение
#5
|
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(kwisp @ 29.4.2009, 14:30) Link jim1406, что пробовал делать для того чтобы перхватывать? QWidget::winEvent(MSG*,long*)[virtual protected] -- смотрел? Да, только не понял тип MSG... |
|
|
|
|
jim1406 |
30.4.2009, 8:33
Сообщение
#6
|
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(sploid @ 29.4.2009, 15:06) Link посмотри это: Link Попытался использовать эту библиотеку... Скачал версию 5, Qt у меня 4.5 (Qt Creator 1.0.0), ОС Windows. Распаковал в C:\libqxt . Дальше сделал qmake libqxt.pro. Запустил configure.bat. Запустил make install. Скопировал C:\libqxt\deploy\qt\qxt.prf в C:\Qt\2009.01\qt\mkspecs\features (This will also install qxt.prf to your qtdir/mkspecs/features directory - вручную). В проекте дорисовал Итог при компиляции... collect 2: ld returned 1 exit status Если qxt не использовать (только инклюд прописать), то лечится Я так понимаю, что не правильно собрал... Где накосячил-то?! |
|
|
|
|
kwisp |
30.4.2009, 8:48
Сообщение
#7
|
|
астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23
|
Цитата(jim1406 @ 30.4.2009, 9:33) Link Скачал версию 5, Qt у меня 4.5 (Qt Creator 1.0.0), ОС Windows. Распаковал в C:\libqxt . Дальше сделал qmake libqxt.pro. Запустил configure.bat. Запустил make install. а чему ты сделал make install ? обычно make -- собирает make install -- копирует, переносит то что ты уже собрал. или в этом случае по другому? Цитата(jim1406 @ 30.4.2009, 5:45) Link Да, только не понял тип MSG... смотри MSDN -- больше выхода нет. только конечно я не уверен что этот метод все сообщения получает однако где то я читал что можно даже перхватить сигнал выключения компьютера и прервать сие действие. кстати а не пробовал просто метод event(QEvent*) не получает ли совершенно случайно то событие которое тебя интересует? Сообщение отредактировал kwisp - 30.4.2009, 8:49 |
|
|
|
|
jim1406 |
30.4.2009, 9:34
Сообщение
#8
|
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата а чему ты сделал make install ? обычно make -- собирает make install -- копирует, переносит то что ты уже собрал. или в этом случае по другому? сначала make, потом make install... а инсталл Link Цитата смотри MSDN -- больше выхода нет. только конечно я не уверен что этот метод все сообщения получает однако где то я читал что можно даже перхватить сигнал выключения компьютера и прервать сие действие. кстати а не пробовал просто метод event(QEvent*) не получает ли совершенно случайно то событие которое тебя интересует? и смотрел и пробовал... event пробовал - событие не ловилось, у меня по крайней мере не получилось. Можно, в принципе, код указанной библиотеки глянуть, как советовали, но... ...Вообще, с библиотекой даже лучше, вот только б руки мне кто выпрямил ))) . Цитата(Litkevich Yuriy @ 29.4.2009, 16:11) Link jim1406, может просто подсмотреть как это делается в том же libqxt? Посмотрел, спасибо - красиво делают Сообщение отредактировал jim1406 - 30.4.2009, 11:24 |
|
|
|
|
DmP |
30.4.2009, 10:45
Сообщение
#9
|
|
Студент ![]() Группа: Участник Сообщений: 61 Регистрация: 11.3.2008 Пользователь №: 116 Спасибо сказали: 15 раз(а) Репутация: 2
|
Вот сделано на основе libqxt, может не очень красиво но работает:
|
|
|
|
|
jim1406 |
30.4.2009, 11:04
Сообщение
#10
|
|
Студент ![]() Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0
|
Цитата(DmP @ 30.4.2009, 14:45) Link Вот сделано на основе libqxt, может не очень красиво но работает: а я windows.h подключал, похоже поэтому и WM_HOTKEY, и MSG оставались "не знакомыми"... спасибо! насчет сборки qxt... похоже победил, установив все (qt sdk, qxt) с нуля. Правда теперь Runtime Error на этапе
Сообщение отредактировал jim1406 - 30.4.2009, 11:42 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 10.11.2025, 15:53 |