挑战高手极限:捕捉鼠标右键激活程序 已经有一程序A用全屏运行在屏幕上,并且为前台。我现在想写一程序B,让它开机长驻内存,然后捕捉鼠标事件,只要是鼠标右键双击就将B程序变为前台,并且占满屏幕。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 B程序可以HOOK message//DLL代码如下:library HookDLL;uses Windows,Messages;var GetMsgHook: HHook;function HookGetMsg(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;begin //如果是右键双击 if PMsg(lParam).message=WM_RBUTTONDBLCLK then Messagebox(0,'你双击了右键!','提示',0); Result:= CallNextHookEx(GetMsgHook, nCode, wParam, lParam);end;procedure BeginHook;begin GetMsgHook := SetWindowsHookEx(WH_GETMESSAGE, @HookGetMsg, HInstance, 0);end;//脱钩procedure EndHook;begin UnHookWindowsHookEx(GetMsgHook);end;exports BeginHook, EndHook;beginend.//exe中调用下面两个函数即可.procedure BeginHook; external 'HookGame.dll';procedure EndHook; external 'HookGame.dll'; 对了,B程序中BeginHook可以传递参数,如procedure BeginHook(H:THandle);如:把exe主窗口的handle传递过去,然后在dll里发消息给handle Delphi下$作用? loadresource和lockresource ADO连接Foxpro,表名中含有-(减号)就会报错。 DLL调用过程中的指针问题!急!急!急! 急需!!!!!!!!!!!!!!! 简单问题,在线讨论 用Delphi也能做出VS.net,不相信的话就进来看看. 如何使用“Dephi”编写动态连接库? Tadoquery中参数返回的问题 我想问一下dbe的支持库有多大?具体是哪些? 各位大哥,请出山相救呀,谢谢! 这个问题就这么难吗?怎么没有人来回答...(大家帮忙呀!!!)
library HookDLL;
uses
Windows,Messages;
var
GetMsgHook: HHook;
function HookGetMsg(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
//如果是右键双击
if PMsg(lParam).message=WM_RBUTTONDBLCLK then
Messagebox(0,'你双击了右键!','提示',0);
Result:= CallNextHookEx(GetMsgHook, nCode, wParam, lParam);
end;procedure BeginHook;
begin
GetMsgHook := SetWindowsHookEx(WH_GETMESSAGE, @HookGetMsg, HInstance, 0);
end;//脱钩
procedure EndHook;
begin
UnHookWindowsHookEx(GetMsgHook);
end;exports
BeginHook, EndHook;beginend.//exe中调用下面两个函数即可.
procedure BeginHook; external 'HookGame.dll';
procedure EndHook; external 'HookGame.dll';
procedure BeginHook(H:THandle);
如:把exe主窗口的handle传递过去,然后在dll里发消息给handle