Главная страница
    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.009 c
3-33505
Olivka
2003-08-18 22:36
2003.09.11
Опять кракозябры мучают, теперь с АДО, драйвер Jet


3-33525
ЕвгенийЕ
2003-08-19 13:53
2003.09.11
Связанное поле, но не LookupDataSet через индексы?


1-33550
titnn
2003-08-29 03:33
2003.09.11
как зеркально переставить биты ...


3-33513
dot
2003-08-19 18:41
2003.09.11
Доступ к таблице


3-33479
Lamer_of_Delphi
2003-08-20 13:29
2003.09.11
Обновление данных





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