我设置了一个钩子并使用CBTProc
函数来监控窗口活动,然后使用SendMessage
调用WM_GETTEXT
来获取窗口文本。
LRESULT CALLBACK CBTProc (int nCode, WPARAM wParam, LPARAM lParam)
{
std::ofstream out("C:\\Users\\John\\Desktop\\temp.txt", std::ios::app);
CBTACTIVATESTRUCT *act = (CBTACTIVATESTRUCT *) lParam;
HWND hWnd = (HWND) wParam;
TCHAR wnd_title[1000];
if(nCode == HCBT_ACTIVATE)
{
SendMessage(hWnd, WM_GETTEXT, sizeof(wnd_title), LPARAM(wnd_title));
out << "Processor: " << wnd_title << "\n";
}
out.close();
return CallNextHookEx(hhkCBT, nCode, wParam, lParam);
}
但是,它不会从记事本,Microsoft Word等过程中打印出文本。
我试图检索活动/聚焦窗口的窗口标题并将其打印出来。关于如何做到这一点的任何提示?
我尝试过GetWindowText,但这也不起作用。