【问题标题】:Select a menu item in another application在另一个应用程序中选择一个菜单项
【发布时间】:2015-07-22 16:51:31
【问题描述】:

我正在使用 VB6 尝试在第三方应用程序的子菜单中选择菜单项。我可以获得要单击的菜单项的 ID,但现在我不确定如何实际单击按钮以运行相关操作。到目前为止,这是我的代码:

hwnd = FindWindow(psClassname, vbNullString)
If hwnd > 0 Then
Call SetForegroundWindow(hwnd)
mwnd = GetMenu(hwnd)
sub_menu = GetSubMenu(mwnd, 0)
button_ID = GetMenuItemID(sub_menu, 0)

Call SetFocus(button_ID)

我得到错误:

参数数量错误或属性分配无效

我也尝试过使用:

Call SendMessage(button_ID, BM_CLICK, 0, 0)

但这也不起作用。任何想法将不胜感激!

【问题讨论】:

    标签: vb6 automation menuitem windows-api-code-pack


    【解决方案1】:

    如果您有菜单项的 ID,您只需向其父项发送/发布包含 ID 的 WM_COMMAND 消息。例如:

    Private Const WM_COMMAND As Long = &H111
    
    SendMessage hwnd, WM_COMMAND, button_ID, ByVal 0&
    

    【讨论】:

    • 这非常适合菜单项,但是当我尝试向“ThunderRT6CommandButton”发送消息时它似乎不起作用。我有 Button 及其父级的正确 ID。我正在尝试以下代码。 SendMessage frame_id, WM_COMMAND, button_ID, ByVal 0& 然后休眠 400ms。有什么想法吗?
    • 这个问题是关于选择一个菜单项的。如果您需要与其他控件交互,请提交一个新问题。谢谢。
    • 已解决:调用 SendMessage(button_ID, BM_CLICK, 0, 0)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    相关资源
    最近更新 更多