Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Перекодировшик клавиатури


Автор: Paata 15.4.2002, 08:26
Хочу поменять например нажатие клавиши 'A' на 'Q' я написал HOOK процедуру. Тело процедури поместил в DLL:


HHOOK hook = SetWindowsHookEx(WH_KEYBOARD,hookproc,hinstance,NULL);

LRESULT CALLBACK hookproc(int ncode,WPARAM wparam,LPARAM lparam)
{
if(ncode>=0)
{
DWORD S = lparam  & 0x80000000;

if (wparam == 'A' )
{
keybd_event ( 'Q', 0, S, 0 );
return 1;
}

}

return ( CallNextHookEx(hook,ncode,wparam,lparam) );
}

Это все работает нормально все работаюшие про-ги получают при нажатие клавиши 'A' букву 'Q'.  А как поступить если хочу клавиши 'A' поменять на букву у кого ASCII code например 176. keybd_event не работает. Может быть по другомо нада сделать?


С уважением Паата

Автор: Sheff 16.4.2002, 16:08
1.)А просто заменить 'A' на сам ASCII код не пробовал ?
2.)Попробуй переписать keybd_event вот так:
Код
keybd_event([ASCII_код],0x45, S ,0);

Автор: Sheff 16.4.2002, 16:13
Я тут щас попробовал функцию keybd_event, вроде так работает:
Код
keybd_event(27,0,0,0);

Автор: Paata 17.4.2002, 08:42
Спосибо что ответиль!
Я хочу что про-ги получали имено ASCII 176 вместа 'A'.
Ану попробуи послать имено ASCII 176. У меня про-ги не получают нечего.

жду ответа

С уважением Паата.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)