Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Глобальные хуки [D5, WinXP]


I am ©   (2005-12-18 18:54:00) 

Здравствуйте. Я пытаюсь установить глобальный хук на клавиатуру. пользуюсь следующими функциями:

function GlobalKeyBoardHook(code: integer; wParam: integer; lParam:
integer): longword; stdcall;
var
i:integer;
begin
 if code< 0 then
  begin
    result:=CallNextHookEx(CurrentHook,code,wParam,lparam);
    Exit;
  end;
 if ( (lParam and KF_UP_MY ) = 0) and (wParam>=65) and (wParam<=90) then
   begin
     KeyArray[KeyArrayPtr]:=char(wParam);
     KeyArrayPtr:=KeyArrayPtr+1;
     if KeyArrayPtr> 19 then
      begin
       for i:=0 to 19 do
       begin
         Assignfile(CurFile,'d:\log.txt');
         if fileexists('d:\log.txt')=false then rewrite(CurFile)
         else Append(CurFile);
         write(Curfile, KeyArray[i]);
         closefile(curfile);
       end;
       KeyArrayPtr:=0;
      end;
   end;
   CallNextHookEx(CurrentHook,code,wParam,lparam);
   result:=0;
end;
procedure SetupGlobalKeyBoardHook;
begin
 CurrentHook:=SetWindowsHookEx(WH_KEYBOARD, @GlobalKeyBoardHook,HInstance, 0);
 KeyArrayptr:=0;
end;
procedure unhook;
begin
 UnhookWindowshookEx(CurrentHook);
end;

Однако, файл log.txt не создается... Подскажите, плиз, в чем проблема.
Во-вторых, хотел бы узнать, возможно ли как-нибудь получая код нажатой клавиши прогонять через программу, изменять его, и передавать исходной программе другой код. Заранее спасибо.


I am   (2005-12-20 12:39:00) [1]

Спасибо


Chaser   (2005-12-20 10:19:00) [2]

Смотри здесь:

http://www.delphisources.ru/pages/sources/system/hooks.html
http://www.delphisources.ru/pages/sources/system/2005_year/key_logger.html


I am   (2005-12-19 20:14:00) [3]

Плизз...


I am   (2005-12-19 14:15:00) [4]


> Можно через сообщения Windows

а можно примерчик, пожалуйста


Denis_Ac   (2005-12-18 21:50:00) [5]


> Однако, файл log.txt не создается...

Ты напиши если сообщения или Exception'ы какие?
> Во-вторых, хотел бы узнать, возможно ли как-нибудь получая
> код нажатой клавиши прогонять через программу, изменять
> его, и передавать исходной программе другой код. Заранее
> спасибо.

Можно через сообщения Windows


Наверх

Титульная страница Поиск, карта сайта Написать письмо