网上找了很多资源,自己也试了多种方法,都行不通!
我要解决的问题是,要获取一个外部程序的控件,并模拟单击该控件,之后弹出一个PopupMenu,然后模拟单击该弹出菜单中的一项.我现在通过FindWindow和SendMessage实现了寻找控件和单击控件的功能,现在需要获取PopupMenu句柄及其其菜单中的各项目的句柄并实现点击的功能,用GetMenu可以获取到一个有效的句柄,但接着用GetSubMenu和 GetMenuItemID等API都起步到作用.网上搜了一下 ,利用获取截取消息的方法也行不通!还望高手指教!
万分感谢!

解决方案 »

  1.   

    木有人了吗 ? 唉...,今天利用绝对坐标调用API移动模拟鼠标单击也没行通!
      

  2.   

    不是,哥们,不能实现的代码上了也没有用的阿 ,那行吧 ,我把核心代码呈上
    Dim ck As String
    ck = "****"
    hwnd2 = FindWindow(vbNullString, ck)'找到标题为****的窗口
    Call EnumAllHandles(hwnd2, "So")'调用一个遍历该窗口的所有控件的函数,直道找到名为So的控件,返回hn2为该控件的句柄
    SendMessage hn2, WM_CLICK, 0, 0  '模拟点击Solve按钮
    单击了Solve按钮后就会弹出PopupMenu,之后无论采用何种方法都起不到作用
    如,GetMessage(hwd, WM_CLICK, 0, 0),截取消息的方式也没行通
    hwndsub3 = GetMenu(hn2)能返回值,但
    hwndsub4 = GetSubMenu(hwndsub3, 0)马上返回0,
    hwndsub5 = GetMenuItemID(hwndsub4, 1)返回-1
      

  3.   

    没有人回答么 ?小弟很伤心啊,真的伤不起阿!
    调用API模拟鼠标移动点击实现了这个功能 ,但该方法不靠普,求更好的方法!