从其他程序使用hwnd中的-textbox获取文本

时间:2011-04-25 20:55:27

标签: .net windows winapi hwnd

嘿,我有一个程序窗口,当我在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或其他什么)?或者我如何访问它?

1 个答案:

答案 0 :(得分:0)

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

你需要:

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

    这假设父窗口中只有一个窗口类,text是库存EDIT类的实现。