C# AutomationElement.FromHandle(IntPtr Handle)停止应用程序

C# AutomationElement.FromHandle(IntPtr Handle)停止应用程序,c#,.net,automationelement,C#,.net,Automationelement,我正在尝试从谷歌浏览器中查找URL 我使用上面的代码。它在其他应用程序中运行良好,但在我的情况下,它会停止我的应用程序 但主要的问题是,当我调试它时,它会工作得很好,所以当没有调试时,会出现什么问题呢 请给出你的解决方案 thanx提前我正在讨论这个问题,这是由于intptr类型的原因,这取决于机器的构造,有时windowhandle对于32位机器的intptr来说太大了 您还可以分享更多信息吗?也只是猜测,但这可能是由于调试设置而未显示的权限问题吗?好的,我提供一些传统信息,我在void m_

我正在尝试从谷歌浏览器中查找URL

我使用上面的代码。它在其他应用程序中运行良好,但在我的情况下,它会停止我的应用程序

但主要的问题是,当我调试它时,它会工作得很好,所以当没有调试时,会出现什么问题呢

请给出你的解决方案


thanx提前

我正在讨论这个问题,这是由于intptr类型的原因,这取决于机器的构造,有时windowhandle对于32位机器的intptr来说太大了

您还可以分享更多信息吗?也只是猜测,但这可能是由于调试设置而未显示的权限问题吗?好的,我提供一些传统信息,我在void m_KeyboardHookManager_KeyPress(对象发送者,System.Windows.Forms.KeyPressEventArgs e){}当我只按一个键时,整个系统就会挂起,如果我将调试点指向AutomationElement elm=AutomationElement.FromHandle((IntPtr)handle);或者在它之前,它工作正常。但是在指向调试点之后,它就不工作了。您好,先生,现在您可以看到我的完整代码了。
catch
语句是否捕获任何异常?如果是,有什么例外?
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 "";
        }
   }