首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2013-06-26 
Delphi 监控其他程序 某个按钮的单击事件有两个程序A 和 B,程序C ,C安装全局钩子,用Dll ,已经实现 如果A中

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 监控其余程序 某个按钮的单击事件

热点排行