在应用程序中跟踪MOUSE的坐标
- 毕业论文
- 关注:4.8K次
SysUtils,
Windows,
HookMain in ;exports
OpenGetKeyHook,
CloseGetKeyHook,
GetPublicP;begin
NextHook := 0;
procSaveExit := ExitProc;
DLLproc := @DLLMain;
ExitProc := @HookExit;
DLLMain(DLL_PROCESS_ATTACH);
end.第二步,建一UNIT ,HOOK MAIN。关键在于CreateFileMapping 和 消息 WM_NCMouseMove, WM_MOUSEMOVE:unit HookMain; interface
uses Windows, Messages, Dialogs, SysUtils; //type DataBuf = Array of DWORD;
type mydata=record
data1:array of DWORD;
data2:TMOUSEHOOKSTRUCT;
end;
var hObject : Thandle;
pMem : Pointer;
NextHook: Hhook;
procSaveExit: Pointer; function HookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
function OpenGetKeyHook(sender : HWND;MessageID : WORD) : BOOL; export;
function CloseGetKeyHook: BOOL; export;
function GetPublicP : Pointer;stdcall; export;
Procedure DLLMain(dwReason:Dword); far;
procedure HookExit; far; implementation Procedure UnMapMem;
begin
if Assigned(pMem) then
begin
UnMapViewOfFile(pMem);
pMem := Nil
end;
end; Procedure MapMem;
begin
hObject := CreateFileMapping($FFFFFFFF,Nil,Page_ReadWrite,0,$FFFF,pChar(_IOBuffer));
if hObject = 0 then Raise te(创建公用数据的Buffer不成? ;
pMem := MapViewOfFile(hObject,FILE_MAP_WRITE,0,0,SizeOf(mydata));
// 1 or SizeOf(DataBuf) ????
// 创建SizeOf(DataBuf)的数据区
if not Assigned(pMem) then
begin
UnMapMem;
Raise te(创建公用数据的`映射关系不成功!);
end;
end;
Procedure DLLMain(dwReason:Dword); far;
begin
Case dwReason of
DLL_PROCESS_ATTACH :
begin
pMem := nil;
hObject := 0;
MapMem; //以下的公有数据,如tHWND,tMessageID将直接使用本Buf.
End;
DLL_PROCESS_DETACH : UnMapMem;
DLL_THREAD_ATTACH,
DLL_THREAD_DETACH :; //缺省
end;
end; procedure HookExit; far;
begin
CloseGetKeyHook;
ExitProc := procSaveExit;
end;function GetPublicP : Pointer;export;
begin //这里引出了公用数据区的指针,你可以在你的应用程序中自由操作它。但建议去掉此接口。
Result := pMem;
end;function HookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
begin
Result := 0;
If iCode $#@60; 0
Then Result := CallNextHookEx(NextHook, iCode, wParam, lParam);
// This is probably closer to what you would want to do...
Case wparam of
WM_LBUTTONDOWN:
begin
end;
WM_LBUTTONUP:
begin
end;
WM_LBUTTONDBLCLK:
begin
end;
WM_RBUTTONDOWN:
begin
messagebeep(1);
end;
WM_RBUTTONUP:
begin
end;
WM_RBUTTONDBLCLK:
begin
end;
WM_MBUTTONDOWN:
begin
end;
WM_MBUTTONUP:
begin
end;
WM_MBUTTONDBLCLK:
下一页
- 文章版权属于文章作者所有,转载请注明 https://www.moshuiwu.com/bylwjy/938zzl.html
相关内容
热门文章
猜你喜欢
专题
- 偷影子的人经典句子
- 冬麦区
- 算术课
- 小伙子
- 太过于在乎一个人的说说
- 神奇的速录为什么会那么快
- 实数
- 丁丽梅经典语录
- 动态变化
- 造假
- 旁白
- 监生
- 英雄
- 迭加
- 王通
- 大屯
- 比尔盖茨经典语录
- 南面
- 通约性
- 提额
- 励志的语句58条
- 設備
- 努字误
- 生态小区
- 略阳
- 常用爱情哲理语录50条
- 冯如造
- 委婉表达自己发泄情续的心情说说摘录
- 适合高三看的励志电影
- 上海居住证A证与人才引进居住证有什么区别
- 五次
- 多多《当你途经我的盛放》唯美语录
- 狗必
- 悠客
- 赶早
- 裂变
- 实习生的自我鉴定
- 盛希泰
- 想放弃的个性签名
- 最新脑筋急转弯及答案
- 博而不精
- 辞职信好聚好散型
- 名著《西游记》读后感150字
- 发卡
- 体小
- 宁神静
- 献计献策
- 说酷
- 丸药
- 小学三年级语文燕子专列说课稿
- 装配图
- 限购
- 房权
- 獨立性
- 人生哲理简短句子
- 爱情公寓的经典爱情语录
- 第41个世界粮食日主题活动总结
- 戏剧学院
- 房地产策划实习日记
- 天会
推荐文章