0

使用 GetWindowText 函数我正在尝试使用 C# 获取错误消息的窗口标题。我能够获得对话框中每个按钮的窗口标题,但不能获得标签的文本。使用 Spy++,我识别了对话,窗口标题字段填充了对话标签中的消息,但这个窗口句柄的 GetWindowText 给了我一个空字符串。与按钮窗口句柄相比,它给了我一个带有窗口标题的字符串。这是我使用的代码:

string nameOfStuff = "";
StringBuilder lpClassName = new StringBuilder();
int index = 20;
int ct = 0;
IntPtr result = IntPtr.Zero;
do
{
    result = FindWindowEx(appHandle, result, null, null);
    if (result != IntPtr.Zero)
    {
        GetWindowText(result, lpClassName, 100);
        nameOfStuff += "      " + Convert.ToString(ct) + lpClassName.ToString() + "\n";
        ++ct;
    }
}

while (ct < index && result != IntPtr.Zero);

此代码为我提供了除标签中的所有窗口标题之外的所有窗口标题。以下是 Spy++ 的外观: 在此处输入图像描述

在此处输入图像描述

知道为什么我不能以这种方式获得标签的窗口标题吗?谢谢!

4

1 回答 1

0

您可以使用此代码获取标题:

LRESULT result = ::SendMessage(handle_of_window, WM_GETTEXT, 255, (LPARAM)charArray);
if (result > 0)
{
    // Print charArray to get result.
}
于 2016-06-24T12:48:02.030 回答