又一个怪事!!!高手来看看 解决就给分,在线等!!!
本人在D下写了一个HOOK
但是编译器提示:
identifer expected but "EXPORTS" found
Undeclared identifer "setkeyhook"
Undeclared identifer "endkeyhook"
Undeclared identifer "nexthookproc"
Undeclared identifer "procsaveexit"
Undeclared identifer "keyhookexit"
我的原代码:
library KeyHook;
uses
windows,
messages,
hookproc in 'hookproc.pas',
SysUtils,
Classes,
exprots
setkeyhook,
endkeyhook;
{$R *.res}
begin
nexthookproc:=0;
procsaveexit:=exitproc;
exitproc:=@keyhookexit;
end.
///////////////////////////////////////
unit hookproc;
interface
uses
Windows, Messages, SysUtils, Controls, StdCtrls;
var
nexthookproc:hhook;
procsaveexit:pointer;
function setkeyhook:bool;export;//加载钩子
function endkeyhook:bool;export;//卸载钩子
procedure keyhookexit;far;
implementation
function setkeyhook:bool;export;//加载钩子
begin
nexthookproc := SetWindowsHookEx( WH_KEYBOARD, keyboardhookhandler, GetModuleHandle(PChar('keyspy')) , 0);
{
int idHook, // type of hook to install
HOOKPROC lpfn, // address of hook procedure
HINSTANCE hMod, // handle of application instance
DWORD dwThreadId // identity of thread to install hook for
);
}
result := nexthookproc<>0;
end;
function endkeyhook:bool;export;
begin
if nexthookproc<>0 then
begin
unhookwindowshookex(nexthookproc);
nexthookproc:=0;
messagebeep(0);
end;
result:=nexthookproc=0;
end;
procedure keyhookexit;far;
begin
if nexthookproc<>0 then endkeyhook;
exitproc:=procsaveexit;
end;
end.