<?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="http://forum.script-coding.com/extern.php?action=feed&amp;tid=17664&amp;type=atom" />
	<updated>2023-03-12T03:03:23Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=17664</id>
		<entry>
			<title type="html"><![CDATA[AHK: Получение значения адресной строки в фаерфоксе через UIA]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=157101#p157101" />
			<content type="html"><![CDATA[<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;)

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
AddressBarName := DllCall(&quot;oleaut32\SysAllocString&quot;, &quot;str&quot;, &quot;Search with Google or enter address&quot;, &quot;ptr&quot;)
VarSetCapacity(variant, 8+A_PtrSize*2, 0)
NumPut(VT_BSTR := 8, variant, 0, &quot;ushort&quot;)
NumPut(AddressBarName, variant, 8, &quot;ptr&quot;)
if (A_PtrSize = 4)
   DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_NamePropertyId := 30005, &quot;int64&quot;, NumGet(variant, 0, &quot;int64&quot;), &quot;int64&quot;, NumGet(variant, 8, &quot;int64&quot;), &quot;ptr*&quot;, condition1)   ; IUIAutomation::CreatePropertyCondition
else
   DllCall(NumGet(NumGet(IUIAutomation+0)+23*A_PtrSize), &quot;ptr&quot;, IUIAutomation, &quot;int&quot;, UIA_NamePropertyId := 30005, &quot;ptr&quot;, &amp;variant, &quot;ptr*&quot;, condition1)   ; IUIAutomation::CreatePropertyCondition
DllCall(&quot;oleaut32\SysFreeString&quot;, &quot;ptr&quot;, AddressBarName)
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
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(conditions)
ObjRelease(condition1)
ObjRelease(condition2)
ObjRelease(ElementFromHandle)
msgbox % StrGet(NumGet(variant, 8, &quot;ptr&quot;), &quot;utf-16&quot;)
return</code></pre></div><p><a href="http://forum.script-coding.com/viewtopic.php?id=16225">Тема для обсуждения</a></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2023-03-12T03:03:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=157101#p157101</id>
		</entry>
</feed>
