使用GetWindowText函数我试图使用C#的错误消息获取Window Caption。我能够获得对话中每个按钮的Window Caption,但不能获得标签的文本。使用Spy ++我发现对话框和Window Caption字段填充了对话标签中的消息,但是这个Window Handle的GetWindowText给了我一个空字符串。与按钮Window Handle相比,它为我提供了一个带有Window Caption的字符串。这是我使用的代码:
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 ++的外观:
知道为什么我不能以这种方式获得标签的Window Caption吗? 谢谢!
答案 0 :(得分:0)
您可以使用此代码获取标题:
LRESULT result = ::SendMessage(handle_of_window, WM_GETTEXT, 255, (LPARAM)charArray);
if (result > 0)
{
// Print charArray to get result.
}