0

嘿,我有一个程序的窗口,当我在 UIspy 中查看它时,我注意到孩子的 RuntimeIds 就像:

"window"      RuntimeId:        "42 1510446"  //parent
    "pane"    RuntimeId:        "42 394736"
    "image"   RuntimeId:        "42 1510446 2 0"
    "button"  RuntimeId:        "42 1510446 2 1"
    "text"    RuntimeId:        "42 1510446 2 2"

我需要获取“文本”的内容,我有一个可以做到这一点的功能,但我需要 hwnd。“文本”是否有 hwnd(应该是 1510446 或其他东西)?或者我怎样才能访问它?

4

1 回答 1

0

HWND是在创建文本窗口时分配的,因此每次加载包含它的窗口时都会有所不同。

您需要:

  1. 获取HWND包含窗口的FindWindow(Ex)
  2. 使用它作为父HWND调用FindWindowEx再次指定TEXT为类名
  3. SendMessage用/ &获取实际文本内容的大小WM_GETTEXTLENGTH创建缓冲区
  4. SendMessage使用/填充该缓冲区的值 WM_GETTEXT

这假设父窗口上只有一个该窗口类,并且text是 stockEDIT类的实现。

于 2011-04-25T21:09:18.717 回答