gpt4 book ai didi

c# - 为什么 GetWindowText 使用 "closed"句柄而不是随机句柄挂起

转载 作者:行者123 更新时间:2023-11-30 12:16:26 25 4
gpt4 key购买 nike

使用下面的代码

    [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 将挂起(即:永不返回)。 (这对我来说很奇怪,因为我原以为它只会返回零值)

传入随机句柄如 new IntPtr(123456) 成功并返回无值。

谁能解释一下这种行为?

最佳答案

在这里阅读 GetWindowText 卧底的描述:The secret life of GetWindowText .

我不认为你会得到更好的:-)如果你真的想 100% 确定你不会挂起调用它,你需要在另一个你可以管理自己的线程上执行它(即:如果你需要,就杀掉)

关于c# - 为什么 GetWindowText 使用 "closed"句柄而不是随机句柄挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com