当前位置: 首页 > 编程语言 > C#

为什么GetWindowText挂在“关闭”句柄上而不是随机句柄上分享

时间:2023-04-10 21:58:45 C#

为什么GetWindowText挂在“关闭”句柄上而不是随机句柄上使用下面的代码="GetWindowText",ExactSpelling=false,CharSet=CharSet.Auto,SetLastError=true)]privatestaticexternintGetWindowText(IntPtrhWnd,StringBuilderlpWindowText,intnMaxCount);publicstaticStringGetWindowText(IntPtrhWnd){StringBuildertitle=newStringBuilder(MAX_TITLE_LENGTH);inttitleLength=WinAPI.GetWindowText(hWnd,title,title.Capacity+1);title.Length=titleLength;返回标题.ToString();如果将句柄传递给最近关闭的应用程序,GetWindowText将挂起(即:永不返回)。(这对我来说很奇怪,因为我希望它返回一个零值)传入一个随机句柄(如newIntPtr(123456)成功并返回None。有人可以解释这种行为吗?阅读GetWindowTexthereDescriptionofundercovers:ThesecretGetWindowText的生命。我不认为你会得到一个更好的:-)如果你真的想100%确定你不会挂断它,你需要在另一个线程上做你自己管理(即:如果需要就杀了)不可能以任何有意义的方式回答这个问题。Win32接口不保证将无效窗口句柄传递给例程时会发生什么。这样做是错误的。请不要。话虽如此,将title.Capacity+1传递给GetWindowText是一个错误,即使使用有效的窗口句柄也是如此。以上就是C#学习教程:为什么GetWindowText会挂一个“关闭”的句柄而不是一个随机的句柄分享所有内容。如果对大家有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: