Главная страница
    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.005 c
11-92092
_Ed_
2002-12-16 14:28
2003.08.28
Дополнение к OnPaint


11-92089
Y
2002-12-22 18:07
2003.08.28
Создание таблицы рекордов


14-92200
Артем К
2003-08-11 04:51
2003.08.28
Где можно найти исходник простенького интерпретатора?


9-91966
Призрак_Коммунизма
2003-02-27 07:48
2003.08.28
Где скачат спрайты в инете?


3-91973
Петров Денис
2003-08-06 17:00
2003.08.28
is not a valid timestamp





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