PInvoke:识别文本框控件的任何可能性

PInvoke: Any possibility to identify a Textbox-Control

我有一个 Outlook 插件,其中包含一个带文本框的功能区。 我想在后面的代码中访问和设置此文本,但根据此线程 Access Ribbon Elements Programatically in XML Ribbon 这是不可能的。 所以我试图绕过 Outlook-Logic 并使用 PInvokes。

我写了一个小包装器,其中 returns 我给定进程的每个控件的 Class-名称、文本和句柄,例如 Outlook。

但我仍然没有找到一种可能性,以某种方式将文本框 X 识别为句柄 y。

我也尝试通过

获取更多信息
    [DllImport("user32.dll", SetLastError = true)]
    internal static extern Boolean GetClassInfoEx(IntPtr hInstance, String lpClassName, ref Model.WndClassEx lpWndClass);

但我也看不到用这些数据来识别我的控件的可能性。

我在这里看到的最后一种可能性是在功能区上创建一个 'GetText'-Delegate,设置一些特定的文本并通过此文本搜索控件,但这对我来说似乎非常 hackish。

有没有更好的方法来完成这项工作?

这些控件未 windowed。也就是说,文本框控件没有 window 句柄,因为它不是 window.

所以你想做的事,用这种方法是不可能的。虽然您可以枚举进程的 windows,但这不会产生表示文本框的 window,因为文本框与其他功能区子控件一样,不是 windowed .