Delphi 如何 设置 钩子 禁用鼠标

Delphi 如何 设置 钩子 禁用鼠标,第1张

library glMouseHook;

uses sysutils,classes,windows,messages;

var

hooked:boolean;

hkhandle:HHOOK;

function hookproc(code:integer;wp:WPARAM;lp:LPARAM):LRESULT;stdcall;

begin

//测试一下钩子

if(wp=WM_LBUTTONDOWN)then MessageBeep(MB_ICONASTERISK);

//鼠标是公用资源,慎重使用。

//隐藏鼠标光标,实际上只是看不见而已。

//但已经达到目的,因为下一步,钓住了发往

//别的窗口的鼠标消息。

showcursor(false);

//中断发往别的窗口鼠标消息链。

result:=1;

end;

function sethook:boolean;stdcall;

begin

result:=false;

if hooked then exit;

hkhandle:=SetWindowsHookEx(WH_MOUSE,hookproc,HInstance,0);

result:=hkhandle<>0;

end;

function removehook:boolean;stdcall;

begin

result:=false;

if(not hooked)and(hkhandle<>0) then

begin

result:=UnHookWindowsHookEx(hkhandle);

end;

hooked:=false;

end;

exports

sethook name 'sethook',

removehook name 'removehook',

hookproc name 'hookproc';

begin

hooked:=false;

end

全局HotKey及调用DLL略。

你说的这些易语言本身就有自己的命令,还用钩子做什么?

模拟鼠标点击 (整数型 X坐标,整数型 Y坐标,[整数型 点击类型]) - 应用接口支持库->系统处理

英文名称:SimulateMouse

模拟鼠标的点击。本命令为初级命令。

参数<1>的名称为“X坐标”,类型为“整数型(int)”。

参数<2>的名称为“Y坐标”,类型为“整数型(int)”。

参数<3>的名称为“点击类型”,类型为“整数型(int)”,可以被省略。模拟鼠标点击的类型,可以为以下常量值之一:0、#接口常量左键单击;1、#接口常量左键双击;2、#接口常量右键单击;3、#接口常量右键双击。

模拟按键 (通用型 虚拟键值1,[通用型 虚拟键值2],[通用型 虚拟键值3]) - 应用接口支持库->系统处理

英文名称:SimulateKey

模拟键盘的输入。本命令为初级命令。

参数<1>的名称为“虚拟键值1”,类型为“通用型(all)”。

参数<2>的名称为“虚拟键值2”,类型为“通用型(all)”,可以被省略。

参数<3>的名称为“虚拟键值3”,类型为“通用型(all)”,可以被省略。

调用的鼠标钩子是不是没有执行啊,比如没有进入到程序的消息循环里,或者是系统的消息循环里,这个要在队列里,系统识别出来才行。对不对,肯定是因为出现了一些。才导致了这个样子,你可以再重新试一下,或者调整一下,不要他的。

用mouse_event发送鼠标右键事件。

如果仅是恶作剧的话,修改右手鼠标为左手鼠标就行了。鼠标钩子,八成会被杀毒软件干掉。

[DllImport("user32dll")]

static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);

enum MouseEventFlag : uint

{

Move = 0x0001,

LeftDown = 0x0002,

LeftUp = 0x0004,

RightDown = 0x0008,

RightUp = 0x0010,

MiddleDown = 0x0020,

MiddleUp = 0x0040,

XDown = 0x0080,

XUp = 0x0100,

Wheel = 0x0800,

VirtualDesk = 0x4000,

Absolute = 0x8000

}

鼠标和键盘不能都锁定吧,否则用什么来重新打开屏幕啊

低级钩子的方法是不行的。系统底层(驱动层)收到输入就开启屏幕了。之后才会调用低级钩子。所以低级钩子拦截是没用的。

如果你的系统是professional的,好像在鼠标的驱动配置里面(设备管理器)电源管理里面可以配置鼠标不唤醒。

可以是usb鼠标,可以考虑关屏幕后卸载掉这个usb设备。这样鼠标就不会触发了。之后开屏再重启这个usb设备

我看过一款关屏幕软件确实做到关闭屏幕后鼠标不会从开屏幕的。但不知道它是用什么原理

以上就是关于Delphi 如何 设置 钩子 禁用鼠标全部的内容,包括:Delphi 如何 设置 钩子 禁用鼠标、易语言鼠标键盘 *** 作、易语言写的鼠标钩子在游戏中无法使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9279031.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存