我想用DELPHI做一个模拟的程序,用WINEXEC函数调用了这个执行程序。
想进一步,操作这个执行程序的导航菜单中某一个菜单,但是没有快捷方式,我没办法用KEYBD_EVENT方法来实现这一步。
请问有没有方法实现,谢谢!

解决方案 »

  1.   

    获得菜单句柄,最后 SendMessage?
      

  2.   

    谢谢!
    请问,我要模拟这个操作:
    这个执行程序有一个步骤,LOAD本地的一个文件,(例如:d:\aaa.ase)
    这个步骤怎么实现?
      

  3.   

    完全可以实现,不用模拟键盘。你可以直接模拟点击菜单,像GetMenu这些函数。
    建议楼主给贴子加些分以表示对问题的重视。
      

  4.   

    可以投递WM_COMMAND消息。
    下面代码就是执行记事本的“另存为”菜单功能。打开记事本后执行下列代码,就能看到效果。procedure TForm1.FormCreate(Sender: TObject);
    var
      hNotepad: Cardinal;
    begin
      hNotepad := FindWindow('Notepad', nil);
      if hNotepad > 0 then
      begin
        SendMessage(hNotepad, WM_COMMAND, 4, 0);
      end;
    end;
    SendMessage的wParam参数可以用D7自带的Winsight截获消息。
      

  5.   

    要模拟键盘的话,那就得用keybd_event函数了,这是专门模拟键盘的函数。