Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.28;
Скачать: CL | DM;

Вниз

Отловить нажатие клавиши   Найти похожие ветки 

 
Dmitriy   (2003-08-07 20:43) [0]

Возможно как-то определить была ли нажата какая-то кнопка на клавиатуре (не важно какая) без использования хуков?

Спасибо.


 
Юрий Зотов ©   (2003-08-07 21:20) [1]

В своей программе - запросто: Application.OnMessage.
Во всех программах - нужен хук. Причем глобальный.


 
Dmitriy   (2003-08-07 23:32) [2]

Я пробовал глобальный хук делать по примеру статьи на этом сайте "Hooks - аспекты реализации". Но он глючил. Запускаю, например TheBat!, нажимаю ALT+F2, почтовик выдаёт ошибку.


 
Palladin ©   (2003-08-08 07:44) [3]

Ну значит не судьба тебе клавиши ловить


 
PVOzerski ©   (2003-08-08 07:53) [4]

На одну-то клавишу GetAsyncKeyState поставить можно.


 
Song ©   (2003-08-08 09:00) [5]

На одну клавишу можно поставить RegisterHotKey()


 
dataMaster ©   (2003-08-08 09:15) [6]

Найди компонент xSpyOut


 
Dmitriy   (2003-08-10 19:34) [7]

Ок, попробую, спасибо.


 
Proger_XP ©   (2003-08-11 11:49) [8]

А если мне надо не одну клавишу а все?


 
Camus ©   (2003-08-11 12:44) [9]

> Proger_XP © (11.08.03 11:49) [8]

А если почитать ответы внимательно?
См. Юрий Зотов © (07.08.03 21:20) [1]


 
Calm ©   (2003-08-11 13:36) [10]


> Proger_XP © (11.08.03 11:49) [8]
> А если мне надо не одну клавишу а все?

Нажатие всех 105 клашиш :-\
Вот это hotkey всем hotkey"ем hotkey будет!


 
Vint45   (2003-08-11 14:21) [11]

И все-таки можно ли делать хуки без DLL? или чтобы отловить нажатие клавиши другим приложением нужно обязательно DLL писать?


 
dataMaster ©   (2003-08-11 14:52) [12]

2Vint45 (11.08.03 14:21)
Можно. Есть еще один компонент - KeySpy называется (или SpyKey, точно не помню). Вот там просто кидаешь его на форму и в твоем распоряжении всего два события - KeyDown и KeyUp. И никаких dll не нужно.


 
Reals ©   (2003-08-15 15:31) [13]

Я вот делаю всегда так, и без проблем:
if (GetAsyncKeyState(VK_CONTROL) <> 0) and
(GetAsyncKeyState(VK_SHIFT) <> 0) and
(GetAsyncKeyState(88) <> 0) then Synchronize(Form1.Close);


Это условие у меня стоит в потоке таймера и обрабатывает нажатие комбинации клавиш Ctrl+Shift+X на закрытие формы. Эта комбинация ловится с любой активной программы.



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

Текущий архив: 2003.08.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
4-92320
nester
2003-06-26 19:17
2003.08.28
Как выгрузить чужую dll-ну? shdoclc.dll


14-92199
Омлет
2003-08-11 00:12
2003.08.28
Именинники 11 августа.


3-92010
GreatMaster
2003-08-05 09:16
2003.08.28
TIBClientDataset


4-92308
MMMaloy
2003-06-12 19:57
2003.08.28
API. CBTProc. code = HCBT_CREATEWND.


14-92234
ru19741974
2003-08-11 14:56
2003.08.28
Сервера и клиенты