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

Вниз

информацию о нажатой клавиши   Найти похожие ветки 

 
tiam   (2003-07-03 11:00) [0]

Как получить информацию о нажатой клавиши в другом приложении, используя GetAsyncKeyState?
Проверить сстояние всех клавиш?


 
tiam   (2003-07-03 11:42) [1]

Как это осуществить через сообщения Windows?
Пробую разные варианты.
Но отловить нажатие в другом приложении не получается


 
MBo   (2003-07-03 12:20) [2]

Хуки.
Статья на сайте есть.


 
tiam   (2003-07-03 12:25) [3]

статью я видел, а через сообщения никак?


 
tiam   (2003-07-03 13:51) [4]

Кроме того, там передается нажатая клавиша.
А как из нее получить символ?
Например, русский?


 
tiam   (2003-07-03 15:08) [5]

Удалено модератором
Примечание: Offtopic


 
tiam   (2003-07-03 16:05) [6]

Удалено модератором
Примечание: Offtopic


 
AlexRush   (2003-07-03 16:18) [7]

Неуж так трудно по коду клавиши и состоянию Shift|Ctrl|Caps|etc определить "русский" символ ? Пол-часа делов-то. Если хочешь перехватывать сообщения WM_CHAR, то ставь хук на все сообщения (но это притормаживает систему)


SetWindowsHookEx({1} WH_CALLWNDPROC, {1 или WH_CALLWNDPROCRET }
{2} @MyCallWndProc, {2 или CallWndRetProc }
hMyDll,
0);


 
tiam   (2003-07-03 16:20) [8]

и где же в wm_char передается код самого символа, по-моему передается тот же код клавиши


 
AlexRush   (2003-07-03 16:52) [9]

DO YOU READ ENGLISH ??
WM_CHAR
This message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. WM_CHAR contains the character code of the key that was pressed.

WM_CHAR chCharCode = (TCHAR) wParam; lKeyData = lParam;

Parameters

chCharCode

Specifies the character code of the key.

Обьясняю популярно:


procedure TForm1.OnApplicationMessage(var Msg: TMsg; var Handled: Boolean);
begin
if msg.message=WM_CHAR
then begin
Edit1.Text:=Edit1.Text+char(msg.wParam);
Handled:=true;
end
( Sender: TObject)
DO YOU READ ENGLISH ??
WM_CHAR
This message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. WM_CHAR contains the character code of the key that was pressed.

WM_CHAR chCharCode = (TCHAR) wParam; lKeyData = lParam;

Parameters

chCharCode

Specifies the character code of the key.

Обьясняю популярно:


procedure TForm1.OnApplicationMessage(var Msg: TMsg; var Handled: Boolean);
begin
if msg.message=WM_CHAR
then begin
Edit1.Text:=Edit1.Text+char(msg.wParam);
Handled:=true;
end
else Handled:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Application.OnMessage:=OnApplicationMessage;
end;



Нажми баттон1 и ОСТАВИВ ФОКУС ВВОДА НА НЕЙ нажимай клавиши... переключи раскладку... нажимай клавиши.... включи CapsLock ... нажимай клавиши...


 
tiam   (2003-07-04 13:07) [10]

Спасибо, но это не совсем то, здесь обрабатываются сообщения внутри приложения
Вот в той статье, где описан хук на все нажатия клавиш в системе и приходит сообщение WMUser(var Message: TMessage);
где в Message.wParam приходит код нажатой клавиши.
нужно этот код обработать (как), чтобы получить код символа, а не код клавиши.


 
tiam   (2003-07-07 09:58) [11]

UP


 
Dw   (2003-07-14 20:39) [12]

Так чем проблема решилась? Подскажите, если кто разобрался.


 
Song   (2003-07-14 21:55) [13]

2tiam (07.07.03 09:58)
Он тебе просто показал пример. В хуке отлавливай WM_CHAR.



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
1-33573
Виталя
2003-08-28 16:36
2003.09.11
Как создать диаграмму в Excel при помощи OLE


1-33646
mfender
2003-08-30 17:25
2003.09.11
Разобрать строку по костям.


14-33724
Calm
2003-08-23 20:47
2003.09.11
Форумы являются СМИ, электронными. Как же тогда быть?


3-33460
Виталя
2003-08-20 15:18
2003.09.11
Interbase : как удалить триггер который не создавал ?


3-33495
SRom
2003-08-22 11:20
2003.09.11
Oracle: редактирование таблицы





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