我通过DLL 向导建立一个 DLL文件 里边有一个 Unit1
是装着一个hook程序可是不知道如何使用请告诉
请问怎么用,另外,这样的程序可以直接建立EXE 启动吗?
hook程序是一现成的例子。
unit Unit1;interface
uses windows,Dialogs;
var
OldHook:HHOOK; //用来保存HOOK的返回?
OldProc:FARPROC; //用来指向窗口消息
Function SetHook:Boolean;stdcall;
Function HookProc(nCode,wParam,lParam:Integer):Integer;stdcall;
Function WinProc(Hwnd,Msg,wParam,lParam:longint):LRESULT; stdcall;
implementation
{###################################################################################}
//安装HOOK
Function SetHook:Boolean;stdcall;
var
Histance:Cardinal;
begin
//安装HOOK
ShowMessage('1');
OldHook:=SetWindowsHookEx(WH_KEYBOARD,@HookProc,Histance,0);
if (OldHook=0) then exit else Result:=True;
end;{###################################################################################}
//HOOK回?函数
Function HookProc(nCode,wParam,lParam:Integer):Integer;stdcall;
var
WinStr:HWND;
begin
//?置??
ShowMessage('2');
if (wParam=VK_F12) then
begin
ShowMessage('3');
WinStr:=FindWindow(nil,'hook');
OldProc:=FARPROC(GetWindowLong(WinStr,GWL_WNDPROC));
SetWindowLong(WinStr,GWL_WNDPROC,Longint(@WinProc));
end;
//将HOOK???Windows?理
Result:=CallNextHookEx(OldHook,nCode,wParam,lParam);
end;{###################################################################################}
//自定?Windows消息?理函数
Function WinProc(Hwnd,Msg,wParam,lParam:longint):LRESULT; stdcall;
begin ShowMessage('ok');
Result:=CallWindowProc(OldProc,Hwnd,Msg,wParam,lParam);
end;
end.
是装着一个hook程序可是不知道如何使用请告诉
请问怎么用,另外,这样的程序可以直接建立EXE 启动吗?
hook程序是一现成的例子。
unit Unit1;interface
uses windows,Dialogs;
var
OldHook:HHOOK; //用来保存HOOK的返回?
OldProc:FARPROC; //用来指向窗口消息
Function SetHook:Boolean;stdcall;
Function HookProc(nCode,wParam,lParam:Integer):Integer;stdcall;
Function WinProc(Hwnd,Msg,wParam,lParam:longint):LRESULT; stdcall;
implementation
{###################################################################################}
//安装HOOK
Function SetHook:Boolean;stdcall;
var
Histance:Cardinal;
begin
//安装HOOK
ShowMessage('1');
OldHook:=SetWindowsHookEx(WH_KEYBOARD,@HookProc,Histance,0);
if (OldHook=0) then exit else Result:=True;
end;{###################################################################################}
//HOOK回?函数
Function HookProc(nCode,wParam,lParam:Integer):Integer;stdcall;
var
WinStr:HWND;
begin
//?置??
ShowMessage('2');
if (wParam=VK_F12) then
begin
ShowMessage('3');
WinStr:=FindWindow(nil,'hook');
OldProc:=FARPROC(GetWindowLong(WinStr,GWL_WNDPROC));
SetWindowLong(WinStr,GWL_WNDPROC,Longint(@WinProc));
end;
//将HOOK???Windows?理
Result:=CallNextHookEx(OldHook,nCode,wParam,lParam);
end;{###################################################################################}
//自定?Windows消息?理函数
Function WinProc(Hwnd,Msg,wParam,lParam:longint):LRESULT; stdcall;
begin ShowMessage('ok');
Result:=CallWindowProc(OldProc,Hwnd,Msg,wParam,lParam);
end;
end.
解决方案 »
- 昨晚搞很久。关于动态生成控件的问题。。其中有问题?
- 用过Tdbgrideh之类的控件的帮忙啊~~~~~
- 如何在程序中动态创建SQL SERVER数据库与表
- 谁做过邮件的匿名发送?用TNMSMTP可以实现吗?最好能多介绍点匿名的原理,谢谢
- 【十万火急的菜鸟问题,在线恭候大家回答!!】$$$$$
- 错在哪
- 给各位拜年了,请问在delphi中如何调用sql server2000数据库(mymis)中的表(mytabl)
- Delphi中的Tadoquery怎么传参数
- 多窗口浏览器换肤问题求教
- 有一台旧显示器,在1024*768分辨率下可用,在800*600下花屏。
- 表中有自增长字段tID,为什么我在程序里面增加内容,老是提示Field tID must hava a value
- Delphi中用FastReport制作报表
编译后生成一个DLL文件引用时声明:
procedure XXXX(XXX);stdcall;extern 'XXX.dll'
function XXXX(XXX):XXX;stdcall;extern 'XXX.dll'
后我按键盘怎么没有反应阿
请高手详细指教 关于、'XXX.dll'的调用我是会的 可以就是这样一个钩子怎么才能看出来对键盘监控呢?
继续等