相关文章  
  • 如何让Windows 2000系统达到最佳性能
  • 经典电脑优化技巧骗术彻底揭密
  • Win2003最新优化方法大全之一
  • Win2003最新优化方法大全之二
  • 制作万能克隆版WinXP超全面攻略
  • 细说Windows XP 虚拟内存优化
  • 戳穿优化Windows XP的经典谣言
  • Windows XP系统全面软优化
  • 再谈如何释放C盘空间 27招具体优化技巧
  • 详解Windows非法操作的具体含义
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    用DLL控制Windows中进程的方法2

    ,只需要调用SetWindowLongPtr函数,改变窗口的内婵中的窗口过程地址,指向一个新的(你自己的) WndProc。Platform SDK文档说,应用程虿能为另一个进程创建的窗口建立子类。这并不完全正确。为另一个进程的窗口建立子类的关键问题与进程地址空间的边界有关。
      
      当调用下面所示的SetWindowsLongPtr函数,建立一个窗口的子类时,你告诉系统,发送到或者显示在hwnd设定的窗口中的所有消息都应该送往MySubclassProc,而不是送往口的正常窗口过程:
      
      进程A中代码:
      EXE file:
      LRESUlT WndProc(HWND hend,UNIT uMsg,...){.....}
      USER32.DLL file
      LONG DispatchMessage(CONST MSG*msg)
      {
      LONG lRet;
      WNDPROC lpfnWndProc=
      (WNDPROC)GetWindowLongPtr(msg,hwnd,GWLP_WNDPROC
      );
      lRet=lpfnWndProc(msg.hwnd,msg.message,msg.wParam,mag.
      lParam);
      return lRet;
      }
      进程B中:
      EXE file
      void Somefunc(void)
      {
      HWND hwnd=Findwindow("class A",NULL);
      SetWindowLongPtr(hwnd,GWLP_WNDPROC,MySubclassProc);
      }
      USER32.DLL fil

    页码:[1] [2] [3] [4] [5] [6] [7]2页、共7页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved