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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
7-92288
WMag
2003-06-13 23:29
2003.08.28
Символ разделения целой и дробной частей


3-92001
rosl
2003-08-05 03:10
2003.08.28
запрос sql


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


14-92260
emike
2003-08-06 02:52
2003.08.28
wav, mp3, ogg


8-92136
LK
2003-04-30 23:29
2003.08.28
Воспроизведение отдельных команд MIDI





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский