我正在尝试使用c++从spy++的'Messages‘窗口中获取文本。
我曾尝试向窗口及其子窗口发送WM_GETTEXT和LB_GETMESSAGE消息,但不起作用。
在记事本上测试的代码运行良好,那么该怎么做呢?
我称这个函数为EnumChildWindows(spyHwnd,EnumChildProc,1);//spyHwnd是'Messages‘窗口的句柄
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
TCHAR text[40];
int length = 0;
int index = 5;
length = SendMessage(hwnd,LB_GETTEXT,index,(LPARAM)text);//or WM_GETTEXT & maxLength=40
return true;
}发布于 2012-09-13 19:39:15
您要查找的窗口有一个"AfxWnd80u“类。我很确定这是车主画的。除了画图和鼠标相关的消息外,它似乎不会收到任何消息。所有者描述意味着Spy++将文本存储在内部某个位置,并手动绘制窗口画布。
如果在这个列表中打开“消息属性”窗口,您可以看到正在使用的标准列表框控件。它显然有不同的行为-选择看起来不同,滚动更流畅(这是一个很差的证据,因为这些东西可以自定义,但仍然有一定的说服力-为什么你会在一个应用程序中做不同的事情?)
如果你在网上搜索"get text AfxWnd",你会看到很多没有答案的问题。一些人求助于模拟Ctrl+C并获取剪贴板内容,但Spy++消息窗口似乎不支持Ctrl+C。
所以,这里没有简单的WinAPI方法。
https://stackoverflow.com/questions/12402169
复制相似问题