Vb6 在另一个应用程序中选择菜单项

Vb6 在另一个应用程序中选择菜单项,vb6,automation,menuitem,windows-api-code-pack,Vb6,Automation,Menuitem,Windows Api Code Pack,我正在使用VB6尝试在第三方应用程序的子菜单中选择一个菜单项。我可以获取要单击的菜单项的ID,但现在我不确定如何实际单击按钮以运行相关操作。以下是我目前的代码: hwnd = FindWindow(psClassname, vbNullString) If hwnd > 0 Then Call SetForegroundWindow(hwnd) mwnd = GetMenu(hwnd) sub_menu = GetSubMenu(mwnd, 0) button_ID = GetMenuIt

我正在使用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)

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

如果您有菜单项的ID,您只需向其父菜单项发送/发布包含该ID的
WM_命令
消息即可。例如:

Private Const WM_COMMAND As Long = &H111

SendMessage hwnd, WM_COMMAND, button_ID, ByVal 0&

这对菜单项非常有效,但当我试图向“ThunderRT6CommandButton”发送消息时,它似乎不起作用。我有按钮及其父项的正确ID。我正在尝试以下代码。SendMessage frame_id、WM_命令、button_id、ByVal 0&然后在之后睡眠400毫秒。有什么想法吗?这个问题是关于选择菜单项的。如果需要与其他控件交互,请提交新问题。谢谢。已解决:呼叫SendMessage(按钮ID,点击,0,0)