Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.032 c
6-71808
Nick2000
2003-07-18 17:12
2003.09.22
Как узнать кол-во присоединенных пользователей?


1-71590
ah
2003-09-09 21:51
2003.09.22
мне нужно распечатать на принтере график на рисованной


1-71679
vladraven
2003-09-11 17:17
2003.09.22
Исходники, ограничивающие срок работы программы.


1-71699
Olegka
2003-09-10 11:08
2003.09.22
Новое окно клиента


6-71798
Jao
2003-06-30 16:36
2003.09.22
Сокеты. Посылка файла посредстом TcpClient и TcpServer