用findwindow找到命令按钮的窗口柄
用findowindowex 找到命令按钮的句柄
最后,用sendmessage向应用程序发送消息

解决方案 »

  1.   

    还是sendkeys
    如果怕焦点出问题
    可以用api记录当前的窗口的句柄,然后反复激活
      

  2.   

    窗口句柄我已经找好了,我的问题是如何使用 sendkeys 送 “y” 命令
      

  3.   

    先用AppActivate激活程序,然后sendkeys
      

  4.   

    SendKeys 语句示例
    本示例使用 Shell 函数来运行 Microsoft Windows 所附的计算器程序;然后使用 SendKeys 语句来按下计算器的某些数字键,最后退出计算器。(若要观察示例运行过程,可将示例粘贴到过程中,再运行过程即可。因为 AppActivate 会将焦点转移到计算器应用程序,故本示例不能以单步方式来运行。)。Dim ReturnValue, I
    ReturnValue = Shell("Calc.EXE", 1)   ' 运行计算器。
    AppActivate ReturnValue    ' 激活计算器。
    For I = 1 To 100   ' 设置计数循环。
       SendKeys I & "{+}", True   ' 按下按键给计算器
    Next I   ' 将所有 I 值相加。
    SendKeys "=", True   ' 取得总合。
    SendKeys "%{F4}", True   ' 按 ALT+F4 关闭计算器。