<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=16225</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16225&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Получение значения адресной строки в фаерфоксе через UIA».]]></description>
		<lastBuildDate>Tue, 13 Apr 2021 13:28:55 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147298#p147298</link>
			<description><![CDATA[<p>Точно.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Tue, 13 Apr 2021 13:28:55 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147298#p147298</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147295#p147295</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Tue, 13 Apr 2021 10:39:32 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147295#p147295</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147127#p147127</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 01 Apr 2021 22:19:06 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147127#p147127</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147120#p147120</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 01 Apr 2021 18:18:33 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147120#p147120</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147119#p147119</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 01 Apr 2021 18:12:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147119#p147119</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147118#p147118</link>
			<description><![CDATA[<p>Угу, работает. ComObjValue(SafeArrayConditions) — это сам SafeArray и есть.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 01 Apr 2021 18:06:03 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147118#p147118</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147115#p147115</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 01 Apr 2021 17:26:09 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147115#p147115</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147113#p147113</link>
			<description><![CDATA[<p>Последний код завершается с ошибкой.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 01 Apr 2021 16:15:40 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147113#p147113</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147106#p147106</link>
			<description><![CDATA[<p>Да, это должно ускорить, надо поизучать.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 01 Apr 2021 15:04:32 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147106#p147106</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147102#p147102</link>
			<description><![CDATA[<p>В скорости поиска.<br />У IAccessible нет встроенных методов, а тут есть.<br />Например IUIAutomationElement::FindFirst.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 01 Apr 2021 14:40:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147102#p147102</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147101#p147101</link>
			<description><![CDATA[<p>Так работает. А какое здесь преимущество перед IAccessible?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Thu, 01 Apr 2021 14:38:01 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147101#p147101</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147095#p147095</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 01 Apr 2021 03:08:01 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147095#p147095</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147090#p147090</link>
			<description><![CDATA[<p>А независимого от языка нет варианта?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 31 Mar 2021 21:29:22 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147090#p147090</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147089#p147089</link>
			<description><![CDATA[<p>Возможно дело в названии адресной строки.<br />У меня называется &quot;Search with Google or enter address&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 31 Mar 2021 21:23:52 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147089#p147089</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=147088#p147088</link>
			<description><![CDATA[<p>Но у меня не срабатывает, сейчас на десятке проверяю.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Wed, 31 Mar 2021 21:16:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=147088#p147088</guid>
		</item>
	</channel>
</rss>
