gpt4 book ai didi

C# PInvoke 从已知窗口中查找子窗口的窗口句柄

转载 作者:行者123 更新时间:2023-11-30 22:37:45 26 4
gpt4 key购买 nike

我目前正在尝试通过 C# pinvoke 使用 SendMessage 从子窗口获取一些文本。但是,我之前对窗口句柄进行硬核化的尝试失败了,因为该值在应用程序启动时发生了变化。有没有办法可靠地获取这个子窗口的窗口句柄? Winspector spy 显示这个窗口的类名是 RichEdit20W。我目前的代码如下:

IntPtr hWnd= (IntPtr) 0xA0E88; // Hardcode window handle


int txtlen = SendMessage(hWnd, WM_GETTEXTLENGTH, 20, null);
StringBuilder text = new StringBuilder(txtlen);
int RetVal = SendMessage(hWnd, WM_GETTEXT, text.Capacity, text);

最佳答案

如果你能得到顶层窗口(有标题栏的那个),你可以使用FindWindowEx通过 child 递归。这使您可以指定窗口的文本(使用 null,因为您不知道)和/或类(您知道)。

http://www.pinvoke.net/default.aspx/user32.findwindowex

关于C# PInvoke 从已知窗口中查找子窗口的窗口句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6374824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com