
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 如何 设置 钩子 禁用鼠标、易语言鼠标键盘 *** 作、易语言写的鼠标钩子在游戏中无法使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)