教程:windows鼠标钩功能

电脑杂谈  发布时间:2020-09-10 14:04:38  来源:网络整理

鼠标钩子函数_鼠标钩子 下载_鼠标钩子函数

鼠标钩子函数

Windows鼠标挂钩功能使用Delphi实山词霸”调用InvalidateRect( ),InvalidateRgn()以在屏幕上的鼠标下获取单词(有关屏幕捕获的详细信息,请参见作者的“ Inside Windows Explorer”,中国计算机新闻,1998年第81号)。动态链接库的原始代码和详细注释如下:{****************************** **** ***************************文件:MOUSEDLL.DPR伪造

鼠标钩子 下载_鼠标钩子函数_鼠标钩子函数

鼠标钩子函数

1998/11/18〉 DLL:MOUSEDLL.DLL导出:sethook用于安装鼠标钩子函数mouseproc取消钩子,以删除鼠标钩子函数的安装mouseproc mouseproc鼠标钩子函数本身的******** **** **********************************************}库Mousedll;在'MOUSEP .PAS'{Form1}中使用Mousep;导出sethook,unhook,mouseproc; {$ R * .RES}开始结束。 {************************* ************************ ************文件:Mousep.pas实现setHook unHook mouseProc,输出函数* ************************ **************************************}单位Mousep;界面使用SysUtils,WinTypes,WinProcs,消息,类,图形,控件,窗体,对话框,StdCtrls; {In ,,,也可以具有类型变量} type TForm1 = class(TForm)Label1:TLabel; {show wParam}标签2:TLabel; {show lParam} Label3:TLabel; {show x,y} Label4:TLabel; {show hwnd} Label5:TLabel; {显示窗口文字} Label6:TLabel;标签7:TLabel; {Display window class}私有{Private Declarations} public {Public declarat

鼠标钩子 下载_鼠标钩子函数_鼠标钩子函数

鼠标钩子函数

ions}结尾;函数sethook:bool; export;功能unhook:bool; export; function mouseProc(code:integer; w:integer; l:longint):bool; export; var Form1:TForm1; idhook:longint; formok:布尔;实施{************************************************ **** *********************声明安装函数setWindowsHookEx(),如果在elphi中使用函数setWindowsHook(),则无需声明它。微软表示,函数setWindowsHook在Windows 3. 1中已被弃用,并且仍保留为与Windows 3. 0兼容。实际上,函数setWindowsHook仍可以在Windows 3. 1和Windows95中使用。 {***************************************************** ********************}函数setwindowsHookEx(id:integer; proc:tfarproc; hinst,htask:thandle):longint; far; external'user'; {$ R * .DFM} {安装鼠标钩子函数mouseProc}函数sethook:bool; var hinst:thandle; {动态链接库自己的模块句柄} proc:tfarproc; {鼠标钩子函数mouseProc的地址}开始{在动态链接中,在库中创建form1}如果formok = false,则form1:= tform 1. create(application)否则退出; formok:= true; {安装form1后,设置formok,无需进一步安装form1} {动态链接库的应用意味着:调用动态链接库的主程序} form 1. sh

鼠标钩子 下载_鼠标钩子函数_鼠标钩子函数

鼠标钩子函数

ow; {不要使用系统菜单双击以关闭Form1} form 1. BorderIcons:= form 1. BorderIcons- [biSystemMenu]; hinst:= getModuleHandle('mousedll'); {获取mousedll.dll本地句柄的模块,即动态链接库的模块本地句柄} proc:= getProcAddress(hinst,'mouseProc'); idhook:= setWindowsHookEx(WH_MOUSE,proc,hinst,0); {安装带有WH_MOUSE参数的鼠标钩后,当您移动鼠标时,系统会自动调用mouseProc钩}}如果idhook = 0,则sethook:= false否则sethook:= true;结束; {取消对mouseProc的安装}函数unhook:bool;如果formok = true,则开始form 1. free else退出; {检查form1是否已关闭} formok:= false; {关闭form1,设置formok = 0}如果idhook = 0,则退出; unhookWindowsHookEx(idhook); unhook:= true;结束; {mouseProc不能被应用程序调用,但是在鼠标移动后由系统调用} function mouseProc(code:integer ; w:integer; l:longint):bool; var p:^ TMouseHookStruct; poff:word; pseg:word; pmemo:pchar;如果有代码则开始

鼠标钩子 下载_鼠标钩子函数_鼠标钩子函数

鼠标钩子函数

am参数,w是各种鼠标消息的标识符} form 1. label 1.标题:='wParam ='+ intTostr(w); {显示系统中的lParam参数,l是MOUSEHOOKSTRUCT结构的地址} form 1. label 2.标题:='lParam ='+ intTostr(l); poff:= loword(l); {得到l ,, bit的低位} pseg:= hiword(l); {获得l的最高位} p:= ptr(pseg,poff); {合成指向MOUSEHOOKSTRUCT结构的指针} {在屏幕上显示鼠标的,,,,坐标} form 1. label 3.标题:='pt .x ='+ intTostr(p ^ .pt.x) +'pt.y ='+ intTostr(p ^ .pt.y); {在屏幕上的鼠标下显示窗口句柄} form 1. label 4.标题:='hwnd ='+ intTostr(P ^ .hwnd); pmemo:= stralloc(2 0); getWindowText(p ^ .hwnd,pmemo,20- 1); {显示鼠标下方窗口的标题栏} form 1. label 5.说明:= strPas( pmemo); getClassName(p ^ .hwnd,pmemo,20- 1); {在鼠标下显示窗口的类别}形式1. label 6.标题:= strPas(pmemo); strDispose(pmemo);主程序的原始代码如下:{******************************** ****** ********* MAINTRY.DPR ************************************ ****** ****}程序Maintry;在'TRYP.PAS'{Form1}中使用Forms,Tryp; {$ R * .RES}开始Application.CreateForm(TForm1,Form 1); Application.Run;结束。{** ********

鼠标钩子函数

*********************************** TRYP.PAS ********* ***************************************}单位Tryp;界面使用SysUtils,WinTypes,WinProcs,消息,类,图形,控件,窗体,对话框,StdCtrls;类型TForm1 = class(TForm)Button1:TButton; {install setHook button} Button2:TButton; {删除摘机按钮} Label1:TLabel; {显示安装,删除是否成功}过程Button1Click(Sender:TObject);程序Button2Click(Sender:TObject);私人{私人声明}公共{公共声明}结尾; var Form1:TForm1;实现函数sethook:bool; far; external'mousedll';函数unhook:bool; far; external'mousedll'; {在声明后自动加载模块mousedll.dll} {$ R * .DFM}过程TForm 1. Button1Click(Sender:TObject);从sethook开始,然后label 1. caption:='set hook ok'; {安装鼠标钩子功能}结束;过程TForm 1. Button2Click(Sender:TObject);如果未摘机则开始,然后标签1.标题:='摘机好'; {Unhook mouse hook function}结束;结束。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-317990-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...