如何测试是否按下按钮?
我使用EnumChildWindows()来枚举给定窗口的子窗口,其中一个子窗口是一个按钮,我想测试是否按下了特定按钮。
直到我知道的代码是:
BOOL CALLBACK MyEnumProc(HWND hwnd, LPARAM lParam)
{
char buffer[256];
GetWindowText(hwnd, buffer, sizeof(buffer));
cout << buffer << endl;
return true;
}
int main()
{
HWND hwnd = FindWindow(0, "Window to find");
EnumChildWindows(hwnd, MyEnumProc, 0);
return 0;
}
答案 0 :(得分:4)
您可以将BM_GETSTATE消息发送到按钮控件,如果按下则结果将是 BST_PUSHED。
答案 1 :(得分:1)
您需要将一个DLL注入进程空间,挂钩窗口消息循环(就像您以前在本机Win32 API C代码中手工编写子类窗口,Window Proc)(google-able)并听取实际消息
所有这些对我来说都是古老的东西,我担心最近的Windows版本(希望如此)使得这一点变得更加困难。
也就是说,如果您可以使用适当级别的权限获得受信任的应用程序,那么您仍然可以执行此操作