我想在一个程序中控制另一个程序的按钮操作(有快捷键的)
如浏览器
可以
PostMessage(hWndClose, WM_KEYDOWN, VK_F11,0);
 单个键值可以,如果想要发送一个组合键 例如
PostMessage(hWndClose, WM_KEYDOWN, MOD_CONTROL+VK_P,0);
却不行
请高手指教,万分感谢.

解决方案 »

  1.   

    你可以用keybd_event:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      hwnd:HWND;
    begin
      hwnd:=findWindow(NIL,'计算器');                         //获取计算机的窗口句柄
      setForegroundWindow(_hwnd);
      keybd_event(vk_return,mapVirtualKey(vk_return,0),0,0);  //按下回车键
      keybd_event(vk_return,mapVirtualKey(vk_return,0),1,0);  //释放回车键
    end;
      

  2.   

    如果你针对的是浏览器:
    var
      html:hwnd;                              //浏览器句柄.
    begin
      html:=FindWIndowEx(0,0,'IEFRAME',nil);  //IEFRAME为浏览器类名.
      if html<>0 then
         begin
           your code...
         end;
    end;