0

我正在尝试使用枚举窗口内的所有控件user32.dll,但我不知道我需要做什么。

我正在使用EnumWindowsand EnumChildWindows,但它不会检索窗口内的所有控件。

我想在 Delphi 应用程序中获取一些标签的文本。

我尝试使用 Spy++,但它也没有列出。

4

2 回答 2

0
    IList<IntPtr> childern = new List<IntPtr>();
    WNDENUMPROC enumChildProc = delegate(IntPtr hwnd, IntPtr param)
    {
        childern.Add(hwnd);
        return true;
    };
    EnumChildWindows(Hwnd, enumChildProc, IntPtr.Zero);
    return childern;

Hwnd是父窗口句柄

于 2014-09-29T15:11:51.890 回答
0

Delphi 标签是非窗口的。这意味着您永远不能希望为它们获取窗口句柄,因为它们不是窗口。

如果 Delphi VCL 正确支持自动化,那么您就可以使用 UI 自动化来检查这些控件的文本。但是 VCL 只支持通过底层 Win32 控件实现自动化。由于标签不是窗口控件,因此您再次不走运。

唯一可以真正希望阅读本文的是进程内部的Delphi代码。听起来这对你来说并不可行。

于 2014-09-30T22:54:16.663 回答