Главная страница
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.49 MB
Время: 0.02 c
7-33825
Vladislav
2003-06-27 13:33
2003.09.11
Какие права у текущего пользователя?


14-33806
alxx
2003-08-22 11:42
2003.09.11
Что за телефоны, начинающиеся с кода (424) в Питере?


1-33675
kingdom
2003-08-29 15:46
2003.09.11
Как узнать полный путь к BPL ке из самой BPL ки.


14-33774
sasami737
2003-08-21 18:04
2003.09.11
Секция Initialization


6-33707
young_shrek
2003-07-09 13:30
2003.09.11
HTTP error message: Interface not supported