AutomationElement.FromHandle(IntPtr Handle) останавливает приложение
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 "";
}
}
Я пытаюсь найти URL из браузера Google Chrome.
И я использую приведенный выше код. Это хорошо работает в другом приложении, но в моем случае это останавливает мое приложение.
Но главная проблема в том, что он будет работать нормально, когда я отлаживаю его, так что не так, когда нет отладки.
Пожалуйста, дайте ваши решения.
спасибо заранее
1 ответ
Я прохожу через это, это происходит из-за типа intptr, это зависит от сборки машины, иногда дескриптор окна слишком велик для intptr 32-битной машины.