我正在尝试让程序单击另一个程序上的按钮;我决定使用这个函数:
SendMessage(hWndVariable, MsgVariable, wParamVariable, lParamVariable)
但有一个问题。带有窗口句柄hWndVariable的窗口有3个按钮。我最初计划在SendMessage函数中使用以下参数:
SendMessage(hWndVariable, BN_CLICK, 0, 0);
问题::但由于有3个按钮,程序如何知道哪一个被点击?大声笑我猜我错过了什么或做了一些完全错误的事情。
答案 0 :(得分:1)
SendMessage(hWndVariable,BN_CLICK,0,0);
这是你的问题。首先,您发送的是不存在的消息(您的意思是BN_CLICKED
)。其次,您没有正确发送消息。
如answers to your previous questions所述,您需要获取按钮的ID。 You can do this using Spy++
然后,根据BN_CLICKED
documentation,您可以发送消息,如this:
SendMessage(parentWindowhWnd, WM_COMMAND, (BN_CLICKED << 16) | BUTTONID, buttonhWnd);
适当填写值 - parentWindowhWnd
是包含按钮的窗口的HWND,BUTTONID
是按钮的ID,buttonhWnd
是按钮本身的HWND。
答案 1 :(得分:0)
BN_CLICKED
是按钮发送到其父窗口的通知。您正在考虑BM_CLICK
消息,您可以将其发送到按钮窗口以模拟其上的点击:
//SendMessage(hWndVariable, BM_CLICK, 0, 0);
SendMessage(hWndVariable, BM_CLICK, 0, 0);
为了实现这一点,hWndVariable
必须指向您要点击的特定按钮,而不是您当前正在执行的父窗口。