AutomationElement.FromHandle(IntPtr Handle) 停止应用程序
本文关键字:应用程序 Handle FromHandle IntPtr AutomationElement | 更新日期: 2023-09-27 18:20:48
private string GetCurrentChromeUrl()
{
try
{
string url = null;
int handle = GetForegroundWindow();
AutomationElement elm = AutomationElement.FromHandle((IntPtr)handle);
AutomationElement elmUrlBar = elm.FindFirst(TreeScope.Descendants,
new PropertyCondition(AutomationElement.NameProperty, "Address and search bar"));
if (elmUrlBar != null)
{
AutomationPattern[] patterns = elmUrlBar.GetSupportedPatterns();
if (patterns.Length > 0)
{
ValuePattern val = (ValuePattern)elmUrlBar.GetCurrentPattern(patterns[0]);
url = val.Current.Value;
//break;
}
}
return url;
}
catch (Exception e1)
{
return "";
}
}
我正在尝试从谷歌浏览器查找网址。
我正在使用上面的代码。它在其他应用程序中工作正常,但就我而言,它会停止我的应用程序。
但主要问题是它在调试时可以正常工作,那么在没有调试时会出错。
请给出您的解决方案。
提前致谢
我正在通过这个,它发生在 intptr 类型,这取决于机器的构建,有时窗口句柄对于 32 位机器的 intptr 来说太大了。