gpt4 book ai didi

c++ - 使用 win32 C++ 和 Hook 从应用程序中的按钮获取文本

转载 作者:搜寻专家 更新时间:2023-10-30 23:55:13 24 4
gpt4 key购买 nike

我正在尝试使用 Winapi 检索计算器 (calc.exe) 上按钮的文本。我已经 Hook 了 WH_CALLWNDPROC 并且 Hook 工作正常。但我无法检索任何按钮的文本(比如数字 7)。我正在使用 GetDlgItemText:

TCHAR text[256];
GetDlgItemText((HWND)0x7068c, 0x89, text, strlen(text));

这里 0x7068c 是数字 7 按钮的父窗口句柄,而 0x89 是它的控件 ID。没有返回文本,但我可以通过编程方式单击它。

我做错了什么?我尝试将 SendMessage 与 WM_GETTEXT 一起使用,但它仍然不起作用。我想采用这种方法并从其他应用程序中的按钮、文本框检索文本。

最佳答案

您可以简单地使用辅助功能:

        #include "windows.h"
#include "Oleacc.h"
#include "atlbase.h"
#pragma comment(lib,"Oleacc.lib")

int main()
{
CComPtr<IAccessible> pAcc;
VARIANT varChild;
if (SUCCEEDED(AccessibleObjectFromWindow((HWND)0x000d18e0,
OBJID_WINDOW,IID_IAccessible, reinterpret_cast<void**>(&pAcc))))
{
CComBSTR bstrName;
varChild.vt = VT_I4;
varChild.lVal = CHILDID_SELF;
if (SUCCEEDED(pAcc->get_accName(varChild, &bstrName)))
{
wprintf(L"%s", bstrName.m_str);
}

}
return 0;
}

关于c++ - 使用 win32 C++ 和 Hook 从应用程序中的按钮获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32866979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com