Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];

Вниз

Как отловить нажатие alt   Найти похожие ветки 

 
Wolfram ©   (2006-02-20 13:34) [0]

Мне нужно отлавливать нажитие любых клавиш, в том числе сдвиговых (ctrl, alt, shift). Я использую компонент ApplicationEvents, но в него не попадает нажатие клавишы alt. Я пробовал использовать событие формы OnKeyDown, но в него не попадает Tab. Как можно решить эту проблему и отлавливать нажатие любых клавишь?


 
n0name   (2006-02-20 13:41) [1]

отлавливать сообщения напрямую.
WM_KEYDOWN + WM_KEYUP


 
Wolfram ©   (2006-02-20 13:48) [2]

Ну, дык, в том то и дело - когда жмёшь alt WM_KEYDOWN не приходит!!!
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
if msg.message=WM_KEYDOWN then ShowMessage("test");
end;
Так вот, мессага не вылетает при нажатии alt.


 
Leonid Troyanovsky ©   (2006-02-20 14:04) [3]


> Wolfram ©   (20.02.06 13:34)  
> Мне нужно отлавливать нажитие любых клавиш, в том числе
> сдвиговых (ctrl, alt, shift). Я использую компонент ApplicationEvents,
>  но в него не попадает нажатие клавишы alt.


Все попадает.

procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
 var Handled: Boolean);
begin
 if msg.CharCode = vk_menu then
   {Нажата клавиша Alt}
end;


--
Regards, LVT.


 
delphi-oracle ©   (2006-02-20 23:25) [4]

Есть такая класная функция GetKeyState
VK_MENU - альт
getkeystate(VK_MENU)<-126 альт нажат
getkeystate(VK_TAB)<-126 таб нажат
GetKeyState возвращает значение -127 или -128.
Единственная проблема - ето не событие, а просто проверяет, нажата ли клавиша. Я однажды уже делал что-то такое и обнаружил, что функция замечает все клавишы, независимо от активного приложения.
Если нажать Ctrl+левая кнопка мыши на VK_TAB, то увидиш все VK_*


 
Wolfram ©   (2006-02-21 14:13) [5]

Спасибо, знаю я про все эти функции, но есть еще и компонет HotKey...
Это то, что мне было нужно. :)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
2-1145719425
Archy
2006-04-22 19:23
2006.05.14
Пмогите, мне с текстом...


15-1145520353
xayam
2006-04-20 12:05
2006.05.14
Предложение, измененить скрипт этого форума


3-1142690509
__Misha
2006-03-18 17:01
2006.05.14
Как получить коллекцию таблиц и полей базы


2-1146155604
Ded22
2006-04-27 20:33
2006.05.14
Обновление по таймеру !


2-1146065265
tio
2006-04-26 19:27
2006.05.14
AddIndex





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский