HPC.ru lite - Все форумы
Форум: Программирование для КПК
Тема: Hardware Button Windows Mobile 5.0
Страницы: [1] 2

[Ответить]
StealthMan [09.04.2007 23:35] Hardware Button Windows Mobile 5.0:
Горячие клавиши перехватываю функций RegisterHotKey, коды для 4 кнопок 193-196. В WM2003 все порядке. В WM5 перехватывается только Button 2 с кодом 194.
Как мне перехватить все 4 кнопки в WM5?
sshd [10.04.2007 01:01] :
http://www.pocketpcdn.com/articles/handle_hardware_keys.html
StealthMan [10.04.2007 23:40] :
На эмуляторе:
91 win
112,113 SoftKeys

Вопрос: А это на всех устройствах WM5? (я раньше считал, что эти коды относятся к Smartphone)

Также очень бы хотелось узнать, на WM5 2 крайние кнопки стали SoftKey клавишами? (т.е. как они будут реагировать если к примеру на мой HP2410 WM2003SE установить WM5)

Проблемы:
перехват 91 Win работает ежеслучайно... почему-то система после минимизации приложения иногда перехватывает назад кнопку.

112,113 захватываются через fsModifiers=0, а после освобождения система не возвращает себе управление ими... как это побороть или что я делаю не так?
sshd [11.04.2007 10:29] :
вроде не должны...
хотя я не пробовал в настройках на них что-нибудь менять.

в wm5 софткнопки появились от смартфонов, поэтому и коды у них такие же - VK_TSOFT1 и VK_TSOFT2.

а тебе, кстати, их глобально захоткеить нужно, или только в своей программе?
StealthMan [11.04.2007 13:58] :
вроде не должны...
хотя я не пробовал в настройках на них что-нибудь менять.
Я наверное не совсем правильно поставил вопрос... больше интересует не с точки зрения функциональности, а с выдаваемых кодов клавиш

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

А Button1 vk=193 остался или на всех девайсах превратился в vk=91?
sshd [11.04.2007 15:07] :
коды скорее всего не изменятся.
по крайней мере когда у меня был прошитый 2410, там они не работали как софт-кнопки.

тоесть?
0xC1 - это user (тоесть oem) defined кнопка.
а 0x5B - это какая-то более стандартная. кстати, что у тебя на ней?
StealthMan [11.04.2007 15:36] :
На ней - "Start Meny"
То то и оно, что в реестре [HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Keys\40C1] она Button 1, а перехватывается только как 5B, а не C1

у тебя на WM5 она под кодом С1 перехватываеться?
sshd [11.04.2007 16:06] :
не проверял.

ну я обычно если нужно узнать код кнопки, то перехватываю вообще всё от 0x00 до 0xFF со всеми возможными модификаторами, а потом при нажатии вывожу messagebox с кодом кнопки.
попробуй, может у тебя там не всё так просто, как кажется.
StealthMan [11.04.2007 16:48] :
не проверял.

Если будет не сложно... проверь, пожалуйста, у меня есть подозрение что в WM5 на всех устройствах она будет под кодом 5B.
sshd [11.04.2007 17:50] :
StealthMan
ну в общем, как я и подозревал - там не всё так просто.
приходит нажатие 0x5B, потом нажатие 0xC1, потом отжатие 0x5B и в конце - отжатие 0xC1.
всё-таки я бы советовал воспользоваться моим способом (из предыдущего сообщения).

а 0x5B (он же VK_LWIN) - это наверное просто модификатор. а основная кнопка - так и осталась 0xC1.
[Ответить]
[Вперед >]