Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Что-то не то с библиотекой   Найти похожие ветки 

 
Рома   (2004-08-21 13:47) [0]

Здравствуйте все! Буду очень благодарен, если объясните в чём дело. Не получается сделать так, чтобы библиотека записывала строки в файл. При её подключении (sethook) из другой программы  процедура CreateNewFile создаёт новый файл, что и требуется. Однако если запускать эту процедуру из указанного места в программе(после нажатия клавиши), то она ничего не делает. Просто какой-то парадокс. Вот исходник библиотеки:

library SpyKey;
uses Windows, SysUtils, Dialogs;
const FileName="LOG.TXT";
var
 MyHookHandle:Hhook = 0;
 TFile: TextFile;

procedure CreateNewFile;
begin
AssignFile(TFile,FileName);
ReWrite(TFile);
WriteLN(TFile, "Новый файл");
CloseFile(TFile);
end;

function MyCoolHook(Code: integer; wParam: word; lParam: Longint):LongInt;stdCall;
begin

if code<0 then Result := CallNextHookEx(MyHookHandle,Code, wParam, lParam)
else{проверка, какая кнопка нажата}
  begin
  result:=0;

  if(code=HC_ACTION)and(lParam<>lParam or $8000 shl 16)and
    (lParam<>lParam or $8000 shl 15) then
    begin
     //CreateNewFile - Почему-то из этого места функция никогда не выполняется!
     ShowMessage("Хм"); {Сообщение показывается при нажатии любой клавиши всегда}
    end;

CallNextHookEx(MyHookHandle,Code, wParam, lParam)//вызываю следующую ловушку
end;{if}

end;

procedure SetHook;stdCall;Export;
begin
//CreateNewFile - А отсюда выполняется нормально  ;
MyHookHandle := SetWindowsHookEx(WH_Keyboard, @MyCoolHook, hInstance, 0);//устанавливаю хук
end;

procedure UnHook;stdCall;Export;
begin
UnhookWindowsHookEx(MyHookHandle);
end;

exports
SetHook,
Unhook;

Begin
end.


 
Profi ©   (2004-08-21 14:11) [1]

Еще один "хакер"!


 
olookin ©   (2004-08-21 14:54) [2]

Наверное, условие

if(code=HC_ACTION)and(lParam<>lParam or $8000 shl 16)and
   (lParam<>lParam or $8000 shl 15) then
   
не выполняется


 
Рома   (2004-08-21 15:06) [3]

Нет, в том то и дело, что это условие прекрасно выполняется, и выводится сообщение "Хм", но функция CreateNewFile, которая должна выполняться перед выводом сообщения, ничего не делает. Вот сижу сейчас и не знаю что делать.



Страницы: 1 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
14-1092631028
КаПиБаРа
2004-08-16 08:37
2004.09.05
Порекомендуйте программы


9-1084807193
Pirate
2004-05-17 19:19
2004.09.05
3D Движки


4-1090601650
}|{yk
2004-07-23 20:54
2004.09.05
Как "прибить" процесс?


8-1087299715
Ruslan
2004-06-15 15:41
2004.09.05
А как воспроизводить потоковый звук ?


3-1092063370
raul
2004-08-09 18:56
2004.09.05
как лечить ошибку таблицы PARADOX header/index corrupt