<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=10427</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=10427&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Работа с библиотекой Acc Library. Вывод информации».]]></description>
		<lastBuildDate>Mon, 08 Jan 2018 17:55:15 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122873#p122873</link>
			<description><![CDATA[<p>В общем, разобрался со своим <a href="http://forum.script-coding.com/viewtopic.php?pid=122380#p122380">вопросом</a>.</p><p>Как обычно, все оказалось не так уж и сложно, стоило только вникнуть в суть. Хотя и там без своих заморочек не обошлось, но куда же без этого)?</p><p>Распишу моменты, которые понял, может еще кому пригодится.</p><p>Сразу ссылка на <a href="https://github.com/Drugoy/Autohotkey-scripts-.ahk/blob/master/Libraries/Acc.ahk">Acc.ahk</a>, а то было непросто ее найти.</p><p>Для начала, очень полезной оказалась программка <a href="https://github.com/Drugoy/Autohotkey-scripts-.ahk/blob/master/DevTools/AccViewer.ahk">Accessible Info Viewer</a> (AIV). С ее помощью находим элемент, который нам нужен, копируем порядок дочерних элементов (к примеру, 4.3.4.1), добавляем в функцию acc_get и все. Дальше делаем с найденным элементом все, что захочется (в пределах возможностей acc, конечно) ).</p><p>Как пример, выберем папку в окне проводника:</p><div class="codebox"><pre><code>#include Acc.ahk

WinGet, hWnd, ID, ahk_class CabinetWClass
Acc := Acc_Get(&quot;Object&quot;, &quot;4.3.4.1.4.1.4.4.4.1.4.2&quot;, 0, &quot;ahk_id &quot; hWnd)
Acc.accSelect(9,0)</code></pre></div><p>Кстати, можно поиграться с первым значением accSelect() и выбрать необходимый режим выделения элементов.</p><p>А теперь самое интересное: этот метод подходит не для всех программ. К примеру, тот код, который я приводил в своем первом сообщении, действительно оказался нерабочим. Мало того, если исследовать AIV Total Commander, то окажется, что элементы из панелей TMyListBox (папки и файлы) вообще не отображаются в окне AIV. Т.е. таким способом информацию об этих элементах мы не узнаем, а также не сможем с ними взаимодействовать.</p><p>И здесь можно применить другой способ:</p><div class="codebox"><pre><code>#include Acc.ahk

ControlGet, hwnd, hwnd, , TMyListBox2, ahk_class TTOTAL_CMD
Acc :=   Acc_ObjectFromWindow(hWnd)
For i, child in Acc_Children(Acc)	
	Acc.accSelect(9,i)</code></pre></div><p>Но, опять-таки, есть своё но: в последней (найденной) версии <strong>Acc.ahk</strong> (last updated 10/25/2012), в функции <strong>Acc_ObjectFromWindow</strong> был изменен параметр <strong>idObject = 0</strong>. И при выполнении код завершается ошибкой. Если изменить его на старое значение <strong>idObject = -4</strong>, то все выполняется как нужно.</p><p>Не буду утверждать, что это универсальный вариант, возможно у кого-то будет работать и с новым значением.</p><p>У кого будут какие дополнения - пишите, лишним точно не будет.</p><p>P.S.</p><p>А вообще, было бы отлично создать общую тему для Acc. Их (вопросов по acc) не так много, но иногда долго ищешь необходимую тебе информацию из всего списка найденного.</p>]]></description>
			<author><![CDATA[null@example.com (Stepnoy)]]></author>
			<pubDate>Mon, 08 Jan 2018 17:55:15 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122873#p122873</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122579#p122579</link>
			<description><![CDATA[<p>Hotkey конечно команда, имел ввиду <span style="color: red"><strong>::</strong></span>.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Thu, 28 Dec 2017 14:13:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122579#p122579</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122578#p122578</link>
			<description><![CDATA[<p>Да, действительно. <br />А что по вашему hotkey, как не команда?</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 28 Dec 2017 13:52:34 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122578#p122578</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122577#p122577</link>
			<description><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Судя по всему некоторые команды (в частности hotkey) тоже до старта исполнения</p></blockquote></div><p>Наивное предположение. :: а не Hotkey, причем это даже и не команда.<br /></p><div class="codebox"><pre><code>Sleep 5000
Hotkey, f1,,I2  ; изменяем inputlevel
#InputLevel 1
f1::msgbox % A_SendLevel</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Thu, 28 Dec 2017 13:42:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122577#p122577</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122576#p122576</link>
			<description><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>Malcev, вы узнаете чему будет равен inputlevel только когда нажмете ГК. В самом начале исполнения, очевидно, inputlevel будет 1.</p></blockquote></div><p>Inputlevel можно посмотреть в Hotkeys and their methods.<br /></p><div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>директивы иполняются до старта исполнения последовательности команд в коде?</p></blockquote></div><p>Судя по всему некоторые команды (в частности hotkey) тоже до старта исполнения и имеют приоритет над директивами.<br />Я не согласен с тем, что &quot;ни одна команда на директивы не влияет&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 28 Dec 2017 12:41:01 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122576#p122576</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122575#p122575</link>
			<description><![CDATA[<p><strong>Malcev</strong>, вы узнаете чему будет равен inputlevel только когда нажмете ГК. В самом начале исполнения, очевидно, inputlevel будет 1.<br />Не понимаю, вы не согласны что директивы выполняются до старта исполнения последовательности команд в коде? Если нет, тогда увольте...</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Thu, 28 Dec 2017 12:36:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122575#p122575</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122574#p122574</link>
			<description><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>Ну никак нельзя оказать влияние на выполнение директивы до начала хода исполнения скрипта поместив команду выше нее.</p></blockquote></div><p>Так у f1 inputlevel будет равен 2, а не 1 (как указано в директиве):<br /></p><div class="codebox"><pre><code>Hotkey, f1,,I2  ; изменяем inputlevel
#InputLevel 1
f1::msgbox % A_SendLevel</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 28 Dec 2017 12:27:49 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122574#p122574</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122573#p122573</link>
			<description><![CDATA[<p><strong>Malcev</strong>, с моей точки зрения вы выключили отдельную ГК, а не директиву. Под директивой могут находится и другие ГК.<br />Вообще, суть моего сообщения о порядке выполнения директив и команд. Конечно команды влияют друг на друга, даже если на одни из них оказывают влияние директивы.<br />Ну никак нельзя оказать влияние на выполнение директивы до начала хода исполнения скрипта поместив команду выше нее.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Thu, 28 Dec 2017 11:58:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122573#p122573</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122572#p122572</link>
			<description><![CDATA[<p>Благодарю за разъяснения. Но, всё же, раз я на своём опыте встречаю такие ошибки исключительно в момент крайней загрузки ЖД, то связываю проблему именно с этим. Во всех остальных случаях, работает как описано в той же справке, которая говорит, что если полный путь указан не был, то поиск осуществляется вначале в каталоге скрипта.</p>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Thu, 28 Dec 2017 09:50:21 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122572#p122572</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122568#p122568</link>
			<description><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>Если бы можно было командой выключить директиву</p></blockquote></div><div class="codebox"><pre><code>#InputLevel 1
f1::f2
#InputLevel 0
f2::Msgbox
f3::Hotkey, f2,,I1  ; изменяем inputlevel</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 28 Dec 2017 03:16:14 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122568#p122568</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122567#p122567</link>
			<description><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Как же не влияет?</p></blockquote></div><p>Это влияние на условие директивы а не на нее саму.<br />Если бы можно было командой выключить директиву, или создать новую, или изменить выражение в условии...<br />Но по ходу выполнения скрипта даже невозможно создать хоткей с произвольным условием в #If, это условие должно быть прописано в коде скрипта.<br /></p><div class="quotebox"><cite>Справка по Hotkey пишет:</cite><blockquote><p>Counterpart of #If Expression. Expression must match exactly the text of an existing #If Expression, excluding &quot;#If&quot;<br />...<br />Although this command is unable to create new expressions</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Thu, 28 Dec 2017 02:23:20 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122567#p122567</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122566#p122566</link>
			<description><![CDATA[<p>В общем, SetWorkingDir никак не помог. Только полный путь после #Include. Хотя ранее или в более легких по объему скриптах этого не требовалось.</p>]]></description>
			<author><![CDATA[null@example.com (becauseim)]]></author>
			<pubDate>Thu, 28 Dec 2017 01:36:08 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122566#p122566</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122564#p122564</link>
			<description><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>ни одна команда на директивы не влияет</p></blockquote></div><p>Как же не влияет?<br /></p><div class="codebox"><pre><code>SetWorkingDir, c:\
#If (A_ScriptDir != A_WorkingDir)
f1::msgbox</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Thu, 28 Dec 2017 00:12:06 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122564#p122564</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122562#p122562</link>
			<description><![CDATA[<p><strong>KusochekDobra</strong>, ни одна команда на директивы не влияет, потому что команды выполняются <em>в ходе</em> исполнения скрипта, а директивы - <em>до</em>.<br />И разумеется SetWorkingDir не директива, потому что директивы пишутся с #.</p>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Wed, 27 Dec 2017 21:44:54 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122562#p122562</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Работа с библиотекой Acc Library. Вывод информации]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=122561#p122561</link>
			<description><![CDATA[<p>SetWorkingDir на Include не влияет.</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 27 Dec 2017 21:12:27 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=122561#p122561</guid>
		</item>
	</channel>
</rss>
