Текущий архив: 2003.09.22;
Скачать: CL | DM;
ВнизКак узнать, нажата ли в данный момент... Найти похожие ветки
← →
greenrul (2003-09-05 15:19) [0]... МУЛЬТИМЕДИЙНАЯ клавиша в win98 - это там всякие Play,WWW и т.д. В Xp/Nt/2k я могу проверить GetKeyState кажется, но вот в 98 все дополнительные клавиши имеют код 255...
Как мне опознать эти клавиши дополнительные?
← →
[lamer]Barmaglot (2003-09-05 15:28) [1]Как ты проверял в XP/Nt/2kб что работает? Покажи код...
← →
greenrul (2003-09-05 23:37) [2]if GetAsyncKeyState(Key))<0 then
ShowMessage("Key "+IntToStr(key)+" is pressed");
тут кода-то считай нету....
просто для win98 все дополнительные клавиши идут как 255.
Моя задача - сперва отловить нажатие этой клавиши в программе, а потом в определенное время проверить их нажатие. т.е. если я добавлю три мультимедийные клавиши то все будут отзываться как 255 и я не определю who is who
← →
greenrul (2003-09-07 03:30) [3]Доктор, пациент будет жить?
← →
VMcL (2003-09-07 03:50) [4]OFF: >greenrul © (07.09.03 03:30) [3]
Больной, не занимайтесь самолечением. Врач сказал в морг - значит в морг.
← →
greenrul (2003-09-07 13:05) [5]Врач! А как же нетрадиционная медецина?
если серьезно то есть софт для моей клавиатуры который спокойно эти клавиши обрабатывает
← →
greenrul (2003-09-08 23:18) [6]Плиз ХЕЛП!
← →
sniknik (2003-09-08 23:32) [7]до сих пор актуально?
насколько понимаю эти мультимедийные клавиши ничто иное как сочетания типа Ctrl+F1 ....
забей код на кейдаун (если у формы то KeyPreview включи - труе) ди и посмотри. и нечего так ОРАТЬ! ;о))
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if ssShift in Shift then Label1.Caption:= "Shift pressed!"
else Label1.Caption:= "";
if ssAlt in Shift then Label2.Caption:= "Alt pressed!"
else Label2.Caption:= "";
if ssCtrl in Shift then Label3.Caption:= "Ctrl pressed!"
else Label3.Caption:= "";
Label4.Caption:= "Ord : "+IntToStr(Key)+"; Chr : "+Chr(Key);
end;
← →
greenrul (2003-09-09 17:55) [8]Ord:255 Char:я
=(
может есть альтернативные способы?
← →
greenrul (2003-09-09 22:37) [9]Я к сожалению в сообщениях Windows не сильно рублю, но мне кажется что при нажатии клавиши посылается WM поподробней - может оттуда можно выдрать "код"?
← →
sniknik (2003-09-10 00:46) [10]все в виндах делается через сообщения, и кейдаун тоже через них описан вроде этого
procedure WMChar(var Message: TWMChar); message WM_CHAR;
procedure TForm1.WMChar(var Message: TWMChar);
begin
if Message.CharCode = Ord(#13) then
ProcessEnter
else
inherited;
end;
но скорее всего клавиша посылает события нажатия на клавишу, если это не так (говориш что все одно и то же) то осталось найти это сообщение а "выдрать" оттуда код будет легко, он в передаваемом сообщении. (жаль у меня нет такой клавиатуры)
кстати попробуй не только кейдаун а еще и кейпресс, кейап там то же самое?
← →
iWorm (2003-09-10 02:48) [11]у меня тоже мультимедийная клава... Так вот я ставил и на кейпресс, и накейдаун, и на кейапп... На кейпресс лучше не ставить... Еще очень интересная деталь: у меня на клавиатуре есть клавиши управления сидиромом, управления Центральным микшером, быстрого запуска, и еще 2 - PrevPage и NextPage. И вот три клавиши управления звуком и PrevPage и NextPage возращают - Chr(сто с чем то) и их можно в принципе заставить работать как нада а вот остальные 255 :(
с уважением Иван Семенов
← →
don-do (2003-09-10 06:12) [12]Посмотри getkeystate() может поможет.
← →
Романов Р.В. (2003-09-10 06:25) [13]http://z-ol.chat.ru/hardw.htm#T11
Страницы: 1 вся ветка
Текущий архив: 2003.09.22;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.01 c