Using the following code
[DllImport("user32.dll", EntryPoint = "GetWindowText", ExactSpelling = false, CharSet = CharSet.Auto, SetLastError = true)]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpWindowText, int nMaxCount);
public static String GetWindowText(IntPtr hWnd)
{
StringBuilder title = new StringBuilder(MAX_TITLE_LENGTH);
int titleLength = WinAPI.GetWindowText(hWnd, title, title.Capacity + 1);
title.Length = titleLength;
return title.ToString();
}
GetWindowText will hang (IE: never return) if passed a handle to a recently closed application. (Which is odd to me because I would have thought it would just return with a zero value)
Passing in random handle such as new IntPtr(123456)
succeeds and returns with no value.
Could anyone please explain this behavior?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…