我想向某窗口发送模拟鼠标左键点击信息,我测试了一下,部分程序如下:
PostMessage(form1.hWnd, WM_LBUTTONDOWN, 0, 1)
PostMessage(form1.hWnd, WM_LBUTTONUP, 0, 1)
.....没任何反应.......没触发form1.click事件
PostMessage(form1.command1.hWnd, WM_LBUTTONDOWN, 0, 1)
PostMessage(form1.command1.hWnd, WM_LBUTTONUP, 0, 1)
.....确实点击了,能触发form1.command1.click
为什么form1.command1行而form1就不行???不能用mouse_event,因为那是全局的,高手帮忙解决!拜托了~~

解决方案 »

  1.   

    PostMessage(form1.handle, WM_LBUTTONDOWN, 0,1); 
    sleep(200);
    PostMessage(form1.handle, WM_LBUTTONUP, 0, 1);
    中间加个延迟试试
      

  2.   

    我试过了,这样能行:给分哟!
    var
      NewMousePos : Tpoint ;
    begin
      NewMousePos.X := 0 ;
      NewMousePos.Y := 1 ;
      PostMessage(form1.Handle, WM_LBUTTONDOWN, NewMousePos.X,NewMousePos.Y) ;
      PostMessage(form1.Handle, WM_LBUTTONUP, NewMousePos.X,NewMousePos.Y) ;
    end;
    --如果要在其他地方得到窗口的Handle可以用FindWindow与FindWindowEX函数来得到 !
      

  3.   

    PostMessage(form1.handle, WM_LBUTTONDOWN, 0,makelong(5,5))  ;
    PostMessage(form1.handle, WM_LBUTTONUP, 0, makelong(5,5));