从Spy ++窗口获取文本

时间:2012-09-13 08:21:21

标签: c++ text window spy++

我正在尝试使用c ++从spy ++中的'Messages'窗口获取文本。

我试图向窗口及其子项发送WM_GETTEXTLB_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;
}

1 个答案:

答案 0 :(得分:0)

您正在寻找的窗口有一个“AfxWnd80u”类。我很确定它是画主。除了绘画和鼠标相关的消息之外,它似乎没有收到任何消息。 所有者绘制意味着Spy ++在内部将文本存储在某处并手动绘制窗口画布。

如果在同一列表中打开“消息属性”窗口,则可以看到正在使用的标准列表框控件。它显然有不同的行为 - 选择看起来不同,滚动更平滑(这是一个很差的证据,因为这些东西可以定制,但仍然有点说明 - 为什么你会在一个应用程序中做不同的事情?)

如果您在网上搜索“获取文本AfxWnd”,您可以看到很多没有答案的问题。有些人试图模拟Ctrl + C并获取剪贴板内容,但Spy ++ Messages窗口似乎不支持Ctrl + C.

所以,这里没有简单的WinAPI方式。