<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16225&amp;type=atom" />
	<updated>2021-04-13T13:28:55Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16225</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147298#p147298" />
			<content type="html"><![CDATA[<p>Точно.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2021-04-13T13:28:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147298#p147298</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147295#p147295" />
			<content type="html"><![CDATA[<p>Понял, что было с SafeArray не так, нужно было флаг F_OWNVALUE удалить:<br /></p><div class="codebox"><pre><code>setbatchlines -1
IUIAutomation := ComObjCreate(CLSID_CUIAutomation := &quot;{ff48dba4-60ef-4201-aa87-54103eef594e}&quot;, IID_IUIAutomation := &quot;{30cbe57d-d9d0-452a-ab13-7ac5ac4825ee}&quot;)
oStates := [focusable_haspopup := 0x40100000, collapsed_focusable_haspopup := 0x40100400, expanded_focusable_haspopup := 0x40100200, focused_focusable_haspopup := 0x40100004, focused_collapsed_focusable_haspopup := 0x40100404, focused_expanded_focusable_haspopup := 0x40100204]

SafeArray := ComObjArray(VT_UNKNOWN := 13, oStates.Count())
ComObjFlags(SafeArray, -1)               ; Remove F_OWNVALUE
pSafeArray := ComObjValue(SafeArray)

loop % oStates.Count()
{
   VarSetCapacity(variant, 8+A_PtrSize*2, 0)
   NumPut(VT_I4 := 3, variant, 0, &quot;ushort&quot;)
   NumPut(oStates[A_Index], variant, 8, &quot;int&quot;)
   if (A_PtrSize = 4)
      DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_LegacyIAccessibleStatePropertyId := 30096, &quot;int64&quot;, NumGet(variant, 0, &quot;int64&quot;), &quot;int64&quot;, NumGet(variant, 8, &quot;int64&quot;), &quot;ptr*&quot;, condition)   ; IUIAutomation::CreatePropertyCondition
   else
      DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_LegacyIAccessibleStatePropertyId := 30096, &quot;ptr&quot;, &amp;variant, &quot;ptr*&quot;, condition)   ; IUIAutomation::CreatePropertyCondition
   NumPut(condition, NumGet(pSafeArray + 8 + A_PtrSize) + A_PtrSize*(A_Index - 1))
}
DllCall(NumGet(NumGet(IUIAutomation+0)+29*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, pSafeArray, &quot;ptr*&quot;, condition1)   ; IUIAutomation::CreateOrConditionFromArray
NumPut(VT_I4 := 3, variant, 0, &quot;ushort&quot;)
NumPut(UIA_EditControlTypeId := 50004, variant, 8, &quot;int&quot;)
if (A_PtrSize = 4)
   DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_ControlTypePropertyId := 30003, &quot;int64&quot;, NumGet(variant, 0, &quot;int64&quot;), &quot;int64&quot;, NumGet(variant, 8, &quot;int64&quot;), &quot;ptr*&quot;, condition2)   ; IUIAutomation::CreatePropertyCondition
else
   DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_ControlTypePropertyId := 30003, &quot;ptr&quot;, &amp;variant, &quot;ptr*&quot;, condition2)   ; IUIAutomation::CreatePropertyCondition
DllCall(NumGet(NumGet(IUIAutomation+0)+25*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, condition1, &quot;ptr&quot;, condition2, &quot;ptr*&quot;, conditions)   ; IUIAutomation::CreateAndCondition
ObjRelease(condition1)
ObjRelease(condition2)
DllCall(&quot;oleaut32\SafeArrayDestroy&quot;, &quot;ptr&quot;, pSafeArray)
return

f11::
DllCall(NumGet(NumGet(IUIAutomation+0)+6*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, WinExist(&quot;A&quot;), &quot;ptr*&quot;, ElementFromHandle)   ; IUIAutomation::ElementFromHandle
DllCall(NumGet(NumGet(ElementFromHandle+0)+5*A_PtrSize), &quot;ptr&quot;, ElementFromHandle, &quot;int&quot;, TreeScope_Descendants := 0x4, &quot;ptr&quot;, conditions, &quot;ptr*&quot;, element) ; IUIAutomationElement::FindFirst
VarSetCapacity(variant, 8+A_PtrSize*2, 0)
DllCall(NumGet(NumGet(element+0)+10*A_PtrSize), &quot;ptr&quot;, element, &quot;int&quot;, UIA_ValueValuePropertyId := 30045, &quot;ptr&quot;, &amp;variant)   ; IUIAutomationElement::GetCurrentPropertyValue
ObjRelease(element)
ObjRelease(ElementFromHandle)
msgbox % StrGet(NumGet(variant, 8, &quot;ptr&quot;), &quot;utf-16&quot;)
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-04-13T10:39:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147295#p147295</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147127#p147127" />
			<content type="html"><![CDATA[<p>Ещё так можно:<br /></p><div class="codebox"><pre><code>SafeArray := DllCall(&quot;oleaut32\SafeArrayCreateVector&quot;, &quot;uint&quot;, VT_UNKNOWN := 13, &quot;uint&quot;, 0, &quot;uint&quot;, oStates.Count())
loop % oStates.Count()
{
   VarSetCapacity(variant, 8+A_PtrSize*2, 0)
   NumPut(VT_I4 := 3, variant, 0, &quot;ushort&quot;)
   NumPut(oStates[A_Index], variant, 8, &quot;int&quot;)
   if (A_PtrSize = 4)
      DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_LegacyIAccessibleStatePropertyId := 30096, &quot;int64&quot;, NumGet(variant, 0, &quot;int64&quot;), &quot;int64&quot;, NumGet(variant, 8, &quot;int64&quot;), &quot;ptr*&quot;, condition)   ; IUIAutomation::CreatePropertyCondition
   else
      DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_LegacyIAccessibleStatePropertyId := 30096, &quot;ptr&quot;, &amp;variant, &quot;ptr*&quot;, condition)   ; IUIAutomation::CreatePropertyCondition
   NumPut(condition, NumGet(SafeArray + 8 + A_PtrSize) + A_PtrSize*(A_Index - 1))
}
DllCall(NumGet(NumGet(IUIAutomation+0)+29*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, SafeArray, &quot;ptr*&quot;, condition1)   ; IUIAutomation::CreateOrConditionFromArray</code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-04-01T22:19:06Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147127#p147127</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147120#p147120" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>ComObjValue(SafeArrayConditions) — это сам SafeArray и есть.</p></blockquote></div><p>Я имею в виду, что можно так:<br /></p><div class="codebox"><pre><code>DllCall(NumGet(NumGet(IUIAutomation+0)+29*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, SafeArray, &quot;ptr*&quot;, condition1)</code></pre></div><div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Вначале я его создавал так</p></blockquote></div><p>Да, я стал смотреть и тоже подумал, что так должно работать, но почему-то не выходит.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-04-01T18:18:33Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147120#p147120</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147119#p147119" />
			<content type="html"><![CDATA[<p>Вначале я его создавал так<br /></p><div class="codebox"><pre><code>SafeArray := ComObjArray(VT_UNKNOWN := 13, oStates.Count())</code></pre></div><p>Сейчас так:<br /></p><div class="codebox"><pre><code>SafeArray := DllCall(&quot;oleaut32\SafeArrayCreateVector&quot;, &quot;uint&quot;, VT_UNKNOWN := 13, &quot;uint&quot;, 0, &quot;uint&quot;, oStates.Count())</code></pre></div><p>Я думал это одно и тоже, а похоже, что нет.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2021-04-01T18:12:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147119#p147119</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147118#p147118" />
			<content type="html"><![CDATA[<p>Угу, работает. ComObjValue(SafeArrayConditions) — это сам SafeArray и есть.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-04-01T18:06:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147118#p147118</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147115#p147115" />
			<content type="html"><![CDATA[<p>Спасибо.<br />Изменил создание SafeArray.<br /></p><div class="codebox"><pre><code>setbatchlines -1
IUIAutomation := ComObjCreate(CLSID_CUIAutomation := &quot;{ff48dba4-60ef-4201-aa87-54103eef594e}&quot;, IID_IUIAutomation := &quot;{30cbe57d-d9d0-452a-ab13-7ac5ac4825ee}&quot;)
oStates := [focusable_haspopup := 0x40100000, collapsed_focusable_haspopup := 0x40100400, expanded_focusable_haspopup := 0x40100200, focused_focusable_haspopup := 0x40100004, focused_collapsed_focusable_haspopup := 0x40100404, focused_expanded_focusable_haspopup := 0x40100204]
SafeArray := DllCall(&quot;oleaut32\SafeArrayCreateVector&quot;, &quot;uint&quot;, VT_UNKNOWN := 13, &quot;uint&quot;, 0, &quot;uint&quot;, oStates.Count())
if (A_PtrSize = 4)
   SafeArrayConditions := ComObject(0x2000|3, SafeArray, 1)
else
   SafeArrayConditions := ComObject(0x2000|0x14, SafeArray, 1)
loop % oStates.Count()
{
   VarSetCapacity(variant, 8+A_PtrSize*2, 0)
   NumPut(VT_I4 := 3, variant, 0, &quot;ushort&quot;)
   NumPut(oStates[A_Index], variant, 8, &quot;int&quot;)
   if (A_PtrSize = 4)
      DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_LegacyIAccessibleStatePropertyId := 30096, &quot;int64&quot;, NumGet(variant, 0, &quot;int64&quot;), &quot;int64&quot;, NumGet(variant, 8, &quot;int64&quot;), &quot;ptr*&quot;, condition)   ; IUIAutomation::CreatePropertyCondition
   else
      DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_LegacyIAccessibleStatePropertyId := 30096, &quot;ptr&quot;, &amp;variant, &quot;ptr*&quot;, condition)   ; IUIAutomation::CreatePropertyCondition
   SafeArrayConditions[A_Index-1] := condition
}
DllCall(NumGet(NumGet(IUIAutomation+0)+29*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, ComObjValue(SafeArrayConditions), &quot;ptr*&quot;, condition1)   ; IUIAutomation::CreateOrConditionFromArray
VarSetCapacity(variant, 8+A_PtrSize*2, 0)
NumPut(VT_I4 := 3, variant, 0, &quot;ushort&quot;)
NumPut(UIA_EditControlTypeId := 50004, variant, 8, &quot;int&quot;)
if (A_PtrSize = 4)
   DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_ControlTypePropertyId := 30003, &quot;int64&quot;, NumGet(variant, 0, &quot;int64&quot;), &quot;int64&quot;, NumGet(variant, 8, &quot;int64&quot;), &quot;ptr*&quot;, condition2)   ; IUIAutomation::CreatePropertyCondition
else
   DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_ControlTypePropertyId := 30003, &quot;ptr&quot;, &amp;variant, &quot;ptr*&quot;, condition2)   ; IUIAutomation::CreatePropertyCondition
DllCall(NumGet(NumGet(IUIAutomation+0)+25*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, condition1, &quot;ptr&quot;, condition2, &quot;ptr*&quot;, conditions)   ; IUIAutomation::CreateAndCondition
ObjRelease(condition1)
ObjRelease(condition2)
DllCall(&quot;oleaut32\SafeArrayDestroy&quot;, &quot;ptr&quot;, SafeArray)
return

f11::
DllCall(NumGet(NumGet(IUIAutomation+0)+6*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, WinExist(&quot;A&quot;), &quot;ptr*&quot;, ElementFromHandle)   ; IUIAutomation::ElementFromHandle
DllCall(NumGet(NumGet(ElementFromHandle+0)+5*A_PtrSize), &quot;ptr&quot;, ElementFromHandle, &quot;int&quot;, TreeScope_Descendants := 0x4, &quot;ptr&quot;, conditions, &quot;ptr*&quot;, element) ; IUIAutomationElement::FindFirst
VarSetCapacity(variant, 8+A_PtrSize*2, 0)
DllCall(NumGet(NumGet(element+0)+10*A_PtrSize), &quot;ptr&quot;, element, &quot;int&quot;, UIA_ValueValuePropertyId := 30045, &quot;ptr&quot;, &amp;variant)   ; IUIAutomationElement::GetCurrentPropertyValue
ObjRelease(element)
ObjRelease(ElementFromHandle)
msgbox % StrGet(NumGet(variant, 8, &quot;ptr&quot;), &quot;utf-16&quot;)
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2021-04-01T17:26:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147115#p147115</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147113#p147113" />
			<content type="html"><![CDATA[<p>Последний код завершается с ошибкой.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-04-01T16:15:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147113#p147113</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147106#p147106" />
			<content type="html"><![CDATA[<p>Да, это должно ускорить, надо поизучать.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-04-01T15:04:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147106#p147106</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147102#p147102" />
			<content type="html"><![CDATA[<p>В скорости поиска.<br />У IAccessible нет встроенных методов, а тут есть.<br />Например IUIAutomationElement::FindFirst.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2021-04-01T14:40:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147102#p147102</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147101#p147101" />
			<content type="html"><![CDATA[<p>Так работает. А какое здесь преимущество перед IAccessible?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-04-01T14:38:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147101#p147101</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147095#p147095" />
			<content type="html"><![CDATA[<p>Можно так попробовать.<br /></p><div class="codebox"><pre><code>setbatchlines -1
IUIAutomation := ComObjCreate(CLSID_CUIAutomation := &quot;{ff48dba4-60ef-4201-aa87-54103eef594e}&quot;, IID_IUIAutomation := &quot;{30cbe57d-d9d0-452a-ab13-7ac5ac4825ee}&quot;)
oStates := [collapsed_focusable_haspopup := 0x40100400, expanded_focusable_haspopup := 0x40100200, focused_collapsed_focusable_haspopup := 0x40100404, focused_expanded_focusable_haspopup := 0x40100204]
SafeArray := ComObjArray(VT_UNKNOWN := 13, oStates.Count())
if (A_PtrSize = 4)
   SafeArrayConditions := ComObject(0x2000|3, ComObjValue(SafeArray), 1)
else
   SafeArrayConditions := ComObject(0x2000|0x14, ComObjValue(SafeArray), 1)
loop % oStates.Count()
{
   VarSetCapacity(variant, 8+A_PtrSize*2, 0)
   NumPut(VT_I4 := 3, variant, 0, &quot;ushort&quot;)
   NumPut(oStates[A_Index], variant, 8, &quot;int&quot;)
   if (A_PtrSize = 4)
      DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_LegacyIAccessibleStatePropertyId := 30096, &quot;int64&quot;, NumGet(variant, 0, &quot;int64&quot;), &quot;int64&quot;, NumGet(variant, 8, &quot;int64&quot;), &quot;ptr*&quot;, condition)   ; IUIAutomation::CreatePropertyCondition
   else
      DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_LegacyIAccessibleStatePropertyId := 30096, &quot;ptr&quot;, &amp;variant, &quot;ptr*&quot;, condition)   ; IUIAutomation::CreatePropertyCondition
   SafeArrayConditions[A_Index-1] := condition
}
DllCall(NumGet(NumGet(IUIAutomation+0)+29*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, ComObjValue(SafeArrayConditions), &quot;ptr*&quot;, condition1)   ; IUIAutomation::CreateOrConditionFromArray
VarSetCapacity(variant, 8+A_PtrSize*2, 0)
NumPut(VT_I4 := 3, variant, 0, &quot;ushort&quot;)
NumPut(UIA_EditControlTypeId := 50004, variant, 8, &quot;int&quot;)
if (A_PtrSize = 4)
   DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_ControlTypePropertyId := 30003, &quot;int64&quot;, NumGet(variant, 0, &quot;int64&quot;), &quot;int64&quot;, NumGet(variant, 8, &quot;int64&quot;), &quot;ptr*&quot;, condition2)   ; IUIAutomation::CreatePropertyCondition
else
   DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_ControlTypePropertyId := 30003, &quot;ptr&quot;, &amp;variant, &quot;ptr*&quot;, condition2)   ; IUIAutomation::CreatePropertyCondition
DllCall(NumGet(NumGet(IUIAutomation+0)+25*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, condition1, &quot;ptr&quot;, condition2, &quot;ptr*&quot;, conditions)   ; IUIAutomation::CreateAndCondition
ObjRelease(condition1)
ObjRelease(condition2)
loop % oStates.Count()
   ObjRelease(SafeArrayConditions[A_Index-1])
return

f11::
DllCall(NumGet(NumGet(IUIAutomation+0)+6*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;ptr&quot;, WinExist(&quot;A&quot;), &quot;ptr*&quot;, ElementFromHandle)   ; IUIAutomation::ElementFromHandle
DllCall(NumGet(NumGet(ElementFromHandle+0)+5*A_PtrSize), &quot;ptr&quot;, ElementFromHandle, &quot;int&quot;, TreeScope_Descendants := 0x4, &quot;ptr&quot;, conditions, &quot;ptr*&quot;, element) ; IUIAutomationElement::FindFirst
VarSetCapacity(variant, 8+A_PtrSize*2, 0)
DllCall(NumGet(NumGet(element+0)+10*A_PtrSize), &quot;ptr&quot;, element, &quot;int&quot;, UIA_ValueValuePropertyId := 30045, &quot;ptr&quot;, &amp;variant)   ; IUIAutomationElement::GetCurrentPropertyValue
ObjRelease(element)
ObjRelease(ElementFromHandle)
msgbox % StrGet(NumGet(variant, 8, &quot;ptr&quot;), &quot;utf-16&quot;)
return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2021-04-01T03:08:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147095#p147095</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147090#p147090" />
			<content type="html"><![CDATA[<p>А независимого от языка нет варианта?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-03-31T21:29:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147090#p147090</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147089#p147089" />
			<content type="html"><![CDATA[<p>Возможно дело в названии адресной строки.<br />У меня называется &quot;Search with Google or enter address&quot;.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2021-03-31T21:23:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147089#p147089</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=147088#p147088" />
			<content type="html"><![CDATA[<p>Но у меня не срабатывает, сейчас на десятке проверяю.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-03-31T21:16:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=147088#p147088</id>
		</entry>
</feed>
