读书人

Delphi 监控其余程序 某个按钮的单击事

发布时间: 2013-06-26 14:29:32 作者: rapoo

Delphi 监控其他程序 某个按钮的单击事件
有两个程序A 和 B,
程序C ,C安装全局钩子,用Dll ,已经实现 如果A中某个edit回车,A中某个窗口弹出,C执行相应代码,

现在目的,如果B中 按钮B1执行了单击事件,通知C,让C执行一个打印过程。
我想让一个钩子来监控A 和B ,不知道怎样写B1按钮的过虑条件,现有过虑函数如下。

//过滤函数
function FirstFrmPro(ncode:Integer ;Wparam:WPARAM ;Lparam:LPARAM ):LRESULT ;stdcall ;
var h1,h2,h3,h4:HWND ;
i:DWORD ;
keystat: SHORT ;
pskey:TPoint ;
begin
Result :=0;
if ncode <0 then Result := CallNextHookEx(FirstHookHandle ,ncode ,Wparam ,Lparam );
h4 := psharedmem^.LoadTrayEdit ;
h2 := psharedmem^.ErrFormHandle ;
if ncode = 5 then
begin
if h2 = Wparam then
begin
// SendMessage(Psharedmem.InstHandle ,Psharedmem.messageID ,Lparam ,h2);
SendMessage(Psharedmem.InstHandle ,Psharedmem.messageID ,ncode ,h2);
end;
end;
//----------------------
if ncode = 7 then //键盘
begin
keystat := GetKeyState(VK_RETURN );
if (keystat and $80000000) = $80000000 then
begin
GetCursorPos(pskey );
h3:=WindowFromPoint(pskey );
if h3 = psharedmem^.tpbhedit then
begin
//SendMessage(Psharedmem.InstHandle ,Psharedmem.messageID ,h3 ,h3);
SendMessage(Psharedmem.InstHandle ,Psharedmem.messageID ,ncode ,h3);
end;
end;
end;
if h4 = Wparam then
begin
//SendMessage(Psharedmem.InstHandle ,Psharedmem.messageID ,Lparam ,h4);
SendMessage(Psharedmem.InstHandle ,Psharedmem.messageID ,ncode ,h4);
end;

end; delphi?hook


[解决办法]
写了个例子给你,dll注入,hook计算器,可以获取计算器按下的数字。举一反三,可以实现你要的打印的目的。
http://download.csdn.net/detail/sololie/5342675

继续看球下半场Delphi 监控其余程序 某个按钮的单击事件

读书人网 >.NET

热点推荐