![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глобальные хуки [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