Hardware Button Windows Mobile 5.0

Средства разработки, технические вопросы, отвечает (по мере сил) Отдел Разработок
Закрыто
StealthMan
Новенький (0 lvl)
Сообщения: 8
Зарегистрирован: Чт мар 01, 2007 16:26

Hardware Button Windows Mobile 5.0

Сообщение StealthMan » Пн апр 09, 2007 23:35

Горячие клавиши перехватываю функций RegisterHotKey, коды для 4 кнопок 193-196. В WM2003 все порядке. В WM5 перехватывается только Button 2 с кодом 194.
Как мне перехватить все 4 кнопки в WM5?

sshd
Нобелевский лауреат (7 lvl)
Сообщения: 2159
Зарегистрирован: Вс мар 19, 2006 15:55

Сообщение sshd » Вт апр 10, 2007 01:01

Samsung GT-S8500 + MicroSD 8Gb

StealthMan
Новенький (0 lvl)
Сообщения: 8
Зарегистрирован: Чт мар 01, 2007 16:26

Сообщение StealthMan » Вт апр 10, 2007 23:40

На эмуляторе:
91 win
112,113 SoftKeys

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

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

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

112,113 захватываются через fsModifiers=0, а после освобождения система не возвращает себе управление ими... как это побороть или что я делаю не так?

sshd
Нобелевский лауреат (7 lvl)
Сообщения: 2159
Зарегистрирован: Вс мар 19, 2006 15:55

Сообщение sshd » Ср апр 11, 2007 10:29

StealthMan писал(а):Также очень бы хотелось узнать, на WM5 2 крайние кнопки стали SoftKey клавишами? (т.е. как они будут реагировать если к примеру на мой HP2410 WM2003SE установить WM5)
вроде не должны...
хотя я не пробовал в настройках на них что-нибудь менять.
StealthMan писал(а):Вопрос: А это на всех устройствах WM5? (я раньше считал, что эти коды относятся к Smartphone)
в wm5 софткнопки появились от смартфонов, поэтому и коды у них такие же - VK_TSOFT1 и VK_TSOFT2.

а тебе, кстати, их глобально захоткеить нужно, или только в своей программе?
Samsung GT-S8500 + MicroSD 8Gb

StealthMan
Новенький (0 lvl)
Сообщения: 8
Зарегистрирован: Чт мар 01, 2007 16:26

Сообщение StealthMan » Ср апр 11, 2007 13:58

Также очень бы хотелось узнать, на WM5 2 крайние кнопки стали SoftKey клавишами?
вроде не должны...
хотя я не пробовал в настройках на них что-нибудь менять.
Я наверное не совсем правильно поставил вопрос... больше интересует не с точки зрения функциональности, а с выдаваемых кодов клавиш
а тебе, кстати, их глобально захоткеить нужно, или только в своей программе?
нужно глобально, но с такими проблемами лучше вообще трогать их не буду...

А Button1 vk=193 остался или на всех девайсах превратился в vk=91?

sshd
Нобелевский лауреат (7 lvl)
Сообщения: 2159
Зарегистрирован: Вс мар 19, 2006 15:55

Сообщение sshd » Ср апр 11, 2007 15:07

StealthMan писал(а):Я наверное не совсем правильно поставил вопрос... больше интересует не с точки зрения функциональности, а с выдаваемых кодов клавиш
коды скорее всего не изменятся.
по крайней мере когда у меня был прошитый 2410, там они не работали как софт-кнопки.
StealthMan писал(а):А Button1 vk=193 остался или на всех девайсах превратился в vk=91?
тоесть?
0xC1 - это user (тоесть oem) defined кнопка.
а 0x5B - это какая-то более стандартная. кстати, что у тебя на ней?
Samsung GT-S8500 + MicroSD 8Gb

StealthMan
Новенький (0 lvl)
Сообщения: 8
Зарегистрирован: Чт мар 01, 2007 16:26

Сообщение StealthMan » Ср апр 11, 2007 15:36

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

у тебя на WM5 она под кодом С1 перехватываеться?

sshd
Нобелевский лауреат (7 lvl)
Сообщения: 2159
Зарегистрирован: Вс мар 19, 2006 15:55

Сообщение sshd » Ср апр 11, 2007 16:06

StealthMan писал(а):у тебя на WM5 она под кодом С1 перехватываеться?
не проверял.
StealthMan писал(а):На ней - "Start Meny"
То то и оно, что в реестре [HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\Keys\40C1] она Button 1, а перехватывается только как 5B, а не C1
ну я обычно если нужно узнать код кнопки, то перехватываю вообще всё от 0x00 до 0xFF со всеми возможными модификаторами, а потом при нажатии вывожу messagebox с кодом кнопки.
попробуй, может у тебя там не всё так просто, как кажется.
Samsung GT-S8500 + MicroSD 8Gb

StealthMan
Новенький (0 lvl)
Сообщения: 8
Зарегистрирован: Чт мар 01, 2007 16:26

Сообщение StealthMan » Ср апр 11, 2007 16:48

у тебя на WM5 она под кодом С1 перехватываеться?
не проверял.
Если будет не сложно... проверь, пожалуйста, у меня есть подозрение что в WM5 на всех устройствах она будет под кодом 5B.

sshd
Нобелевский лауреат (7 lvl)
Сообщения: 2159
Зарегистрирован: Вс мар 19, 2006 15:55

Сообщение sshd » Ср апр 11, 2007 17:50

StealthMan
ну в общем, как я и подозревал - там не всё так просто.
приходит нажатие 0x5B, потом нажатие 0xC1, потом отжатие 0x5B и в конце - отжатие 0xC1.
всё-таки я бы советовал воспользоваться моим способом (из предыдущего сообщения).

а 0x5B (он же VK_LWIN) - это наверное просто модификатор. а основная кнопка - так и осталась 0xC1.
Samsung GT-S8500 + MicroSD 8Gb

StealthMan
Новенький (0 lvl)
Сообщения: 8
Зарегистрирован: Чт мар 01, 2007 16:26

Сообщение StealthMan » Ср апр 11, 2007 18:01

sshd
Огромное спасибо за помощь.

А ты в Settings->Buttons можешь для Button 1 переназначить функциональность? т.е. я ставлю к примеру вызов калькулятора, вместо которого все равно вызывается "Start Meny"

Закрыто

Вернуться в «Программирование для КПК»