|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Перехват событий клавиатуры
Как правильно перехватывать нажатия на клаву во ВСЕХ приложениях?
Как перехватить нажатие, изменить значение на нужное и послать дальше винде (переназначить)? |
#2
|
||||
|
||||
Цитата:
Несколько исходников в придачу: - Keyboard hook - Key Logger - Key Statistic - ScanKey |
#3
|
|||
|
|||
нашел как без dll получить цифровой код. А кто подскажет как конвертировать его в название кнопки?
|
#4
|
||||
|
||||
Цитата:
THE CRACKER IS OUT THERE |
#5
|
|||
|
|||
Запросто:
Код:
var //переменные в Юните hHook: THandle; VKey:integer; function LowLevelKeyboardProc(nCode: Integer; WParam: WPARAM; LParam: LPARAM): LRESULT stdcall; type PKbdDllHookStrukt = ^TKbdDllHookStrukt; _KBDLLHOOKSTRUCT = record vkCode: DWORD; scanCode: DWORD; flags: DWORD; time: DWORD; dwExtraInfo: PDWORD; end; TKbdDllHookStrukt = _KBDLLHOOKSTRUCT; const RPT_WPARAM_DATA = '%s'; RPT_LPARAM_DATA = '%d'; var StrResult: String; begin StrResult := ''; if nCode = HC_ACTION then Result := CallNextHookEx(hHook, nCode, WParam, LParam); case WParam of WM_KEYDOWN: StrResult := Format(RPT_WPARAM_DATA, ['']); WM_KEYUP: StrResult := Format(RPT_WPARAM_DATA, ['']); WM_SYSKEYDOWN: StrResult := Format(RPT_WPARAM_DATA, ['']); WM_SYSKEYUP: StrResult := Format(RPT_WPARAM_DATA, ['']); end; StrResult := Format(RPT_LPARAM_DATA, [PKbdDllHookStrukt(LParam)^.vkCode]); VKey:=strtoint(strresult); //Получаем VKey нажатой клавиши end; procedure InstallHook; const WH_KEYBOARD_LL = 13; begin hHook := SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0); if hHook = 0 then RaiseLastOSError; end; procedure RemoveHook; begin if not UnhookWindowsHookEx(hHook) then RaiseLastOSError; end; Собственно как теперь мне нреобразовать цифровой код в название нажатой клавиши? |
#6
|
||||
|
||||
Chr(VKey). Должно помочь.
Функция возвращает сам символ. |
#7
|
|||
|
|||
Мужики выручайте ..)) (dll-keyspy)
Короче проблема вот в чем ... Я пишу кейлоггер(dll) мне нужно получить строку с именем активного окна ...Api функции типа getactivewnd пытался ... не получилось ... так подскажите как ... может криво делал..
Заранее невероятно благодарен...))) |