一个程序隐藏在我写的程序后面运行,如何实现以下功能:当鼠标在我的程序上操作的时候,将相应的鼠标消息发送到藏在后面运行的程序?mouse_event好像行不通。Hook可以吗?

解决方案 »

  1.   

    to 北极熊谢谢。
    如果用mouse_event,那么应该和SetCursorPos组合起来用吧,但是我的程序在前台运行,系统会不会向最前面的程序发送消息而不向隐藏在后面的程序呢?
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
       h,l: hwnd;
    begin
      h := findwindow(nil,'内存监视器');
      if h > 0 then
      begin
        l := findwindowex(h,0,'TListBox',nil);
        if l > 0 then
        begin
          //setcapture(l);
          Postmessage(l,WM_RBUTTONDOWN,0,0);
          Postmessage(l,WM_RBUTTONUP,0,0);
        end;
      end;end;
    刚才随意试了一下,看看对你有没有帮助