<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Обход бага диалога в Illustrator]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=8564</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8564&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Обход бага диалога в Illustrator».]]></description>
		<lastBuildDate>Tue, 13 Aug 2013 23:47:56 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Обход бага диалога в Illustrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74496#p74496</link>
			<description><![CDATA[<p>Виноват, спасибо. Сейчас не понимаю, как я не сообразил, что они в связке работают, <em>Title</em> и <em>ahk_class</em>.<br />Всё исправил, режим поменял в обоих местах. Скрипт стал видеть окно и пытаться в нём что-то делать. Но что-то идёт не так.<br />Описываю, что происходит:</p><p>По умолчанию фокус в окне ставится в поле справа от <em>Horizontal</em> (это нормально).<br />Когда я нажимаю <em>Tab</em>, чтобы перейти в поле <em>Vertical</em>, скрипт перебрасывает фокус в поле <em>Distance</em> (это ненормально) — перехват <em>Tab</em> должен происходить только из поля <em>Vertical</em> (или <em>Shift+Tab</em>, если переход идёт из поля <em>Distance</em> — не подумал об этом ранее). Поле <em>Angle</em> при этом сбрасывается вообще, там пусто (круговой индикатор слева от поля показывает направление 0).<br />Если фокус мышкой поставить в поле <em>Distance</em>, то перейти из него с помощью <em>Tab</em> нельзя (только по <em>Shift+Tab</em>). При нажатии <em>Tab</em>, кроме того, сбрасывается поле <em>Angle</em>.<br />Если перейти мышкой в поле <em>Vertical</em> и поставить зеркальное предыдущему значение, смены угла в соответствующем поле не происходит ни в одном из вариантов.<br />Если выставить угол вручную, то при переходе из поля <em>Tab</em>-ом значение сбрасывается на бывшее до исправления.<br />Вот такие симптомы.</p>]]></description>
			<author><![CDATA[null@example.com (chegr)]]></author>
			<pubDate>Tue, 13 Aug 2013 23:47:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74496#p74496</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Обход бага диалога в Illustrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74473#p74473</link>
			<description><![CDATA[<div class="quotebox"><cite>chegr пишет:</cite><blockquote><p>...<br />Когда определённое окно с &quot;<em>Move</em>&quot; в заголовке и <em>ahk_class</em> &quot;<em>Illustrator</em>&quot; появляется...</p></blockquote></div><p>На скрине WinSpy видно, что <strong>ahk_class #32770</strong>, это во-первых.<br />Во-вторых, у вас текст контролов не отображается в <em>Visible Window Text</em>, а только при включенном режиме <em>Slow</em>.<br />Я проверял скрипт на программе, где текст контролов отображается обычным образом.</p><p>Подставьте в скрипт правильный класс окна и проверьте работу скрипта.<br />Если не поможет, исправьте первую строку скрипта на<br /></p><div class="codebox"><pre><code>SetTitleMatchMode Slow</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Tue, 13 Aug 2013 13:20:22 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74473#p74473</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Обход бага диалога в Illustrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74461#p74461</link>
			<description><![CDATA[<p>Я было возрадовался, но увы. Даже тени не промелькнуло.<br />Полагаю, я мог по своей неосведомлённости чего-то недосообщить, либо перепутать в описании алгоритма.<br />Надо было сразу сделать и прекрепить к теме вот эту картинку:<br /><span class="postimg"><img src="http://www.ljplus.ru/img4/c/h/chegr/chegr_ahk_win.png" alt="http://www.ljplus.ru/img4/c/h/chegr/chegr_ahk_win.png" /></span><br /><em>ahk_class</em> для всех диалоговых окон Иллюстратора одинаков.<br />Порядок текстовых полей идёт почему-то снизу вверх.<br />Что-нибудь меняется? Попробую пока поковырять текущий код.<br />Что касается замены по <em>Win+-</em>, то этот вариант тоже требует от меня вспомнить, что новое значение зеркально, и в целом переучиться. Тот же костыль, но в стразах <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> И этот вариант почему-то тоже не работает.</p>]]></description>
			<author><![CDATA[null@example.com (chegr)]]></author>
			<pubDate>Tue, 13 Aug 2013 01:03:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74461#p74461</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Обход бага диалога в Illustrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74455#p74455</link>
			<description><![CDATA[<p>Не проверял на искомой программе, но с самодельным GUI, имеющим 3 поля Edit, работает:<br /></p><div class="codebox"><pre><code>SetTitleMatchMode 2
loop {
   WinWaitActive, Move ahk_class Illustrator
   sleep 100
   ControlGetText, E3, Edit3, A
   WinWaitNotActive, Move ahk_class Illustrator
}

#If WinActive(&quot;Move ahk_class Illustrator&quot;)
Tab::
Enter::
   ControlGetText, E3New, Edit3, A
   if !(E3+E3New) {
      ControlGetText, E1, Edit1, A
      E1 := -1*E1
      ControlSetText, Edit1, %E1%, A
   }
   If (A_ThisHotkey = &quot;Enter&quot;)
      SendInput {Enter}
   else
      ControlFocus, Edit2, A
Return
#If</code></pre></div><br /><p>Это если дословно следовать алгоритму , описанному ниже слов <strong>&quot;Итак, я пытаюсь выполнить следующий алгоритм&quot;</strong> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />C другой стороны, если поставить задачу проще - повесить на хоткей синхронную смену знака в двух полях ввода, то и скрипт получается короче. В данно примере хоткей - Win &amp; Минус (на основной клавиатуре)<br /></p><div class="codebox"><pre><code>SetTitleMatchMode 2
#If WinActive(&quot;Move ahk_class Illustrator&quot;)
#vkBD::
   ControlGetText, E, Edit3, A
   E := -1*E
   ControlSetText, Edit3, %E%, A
   ControlGetText, E, Edit1, A
   E := -1*E
   ControlSetText, Edit1, %E%, A
Return
#If</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Irbis)]]></author>
			<pubDate>Mon, 12 Aug 2013 16:34:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74455#p74455</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Обход бага диалога в Illustrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=74453#p74453</link>
			<description><![CDATA[<p>Я полный чайник в АХК с не очень большим опытом в программирования вообще.<br />Но я надеюсь, что он мне поможет не только в автозамене и горячих клавишах под сложные комбинации, но и для обхода очень назойливого бага в IllustratorCC, в котором я работаю.</p><p>С версии CS4 разработчики сменили направление y-координаты, очевидно, чтобы унифицировать её в контексте других программ семейства. После 15 лет автоматизированной привычки мне совершенно не хотелось переучиваться, поэтому я быстро нашёл вполне легальный способ обойти нововведение. Для этого достаточно заменить &quot;<em>1</em>&quot; на &quot;<em>0</em>&quot; для строк &quot;<em>isRulerOriginTopLeft</em>&quot; и &quot;<em>isRulerIn4thQuad</em>&quot; в Prefs-файле программы.</p><p>К сожалению, такая правка вызывает проблему с диалоговым окном Move (уже проверял, именно поэтому).<br />Когда я вручную вбиваю значения дл вертикального сдвига в этом окне, Илюстратор оставляет его при следующем запуске диалога (это пока не баг). А вот если я поменяю знак этого значения на противоположный, он его проигнорирует (это баг).<br />Например, я набираю &quot;<em>10</em>&quot; и жму <em>Enter</em>. При следующем вызове окна я меняю подставленные &quot;<em>10</em>&quot; на &quot;<em>-10</em>&quot;. Жму ли я <em>Tab</em> после этого или сразу <em>Enter</em> — Illustrator всё равно сделает сдвиг плюс десять, а не минус десять. В обратную сторону то же самое, и только для вертикального сдвига.</p><p>Такое происходит только для пары зеркальных значений. Может показаться редкостью, но в моей работе это одна из самых частых операций. Мне приходится либо вписывать для сдвига значение больше по модулю, потом делать повторный сдвиг, чтобы компенсировать перелёт,&nbsp; либо вручную менять &quot;<em>90</em>&quot; на &quot;<em>-90</em>&quot; (и наоборот) в том же окне — тогда Иллюстратор понимает. И про то и другое надо вовремя вспомнить, что неудобно.</p><p><strong>Итак, я пытаюсь выполнить следующий алгоритм:</strong><br />Когда определённое окно с &quot;<em>Move</em>&quot; в заголовке и <em>ahk_class</em> &quot;<em>Illustrator</em>&quot; появляется, скрипт (уже с <em>#Persistent</em>, там другие вещи дописаны) должен запомнить значение в текстовом поле &quot;<em>Edit 3</em>&quot; (если оно там есть) сравнить его с новым после нажатия <em>Tab</em> или <em>Enter</em>, и если оно зеркально — перехватить нажатие клавиш, перейти в поле &quot;<em>Edit 1</em>&quot;, сделать зеркальным число в нём и далее либо перейти&quot;<em>Edit 2</em>&quot; (если был нажат <em>Tab</em>) или симулировать <em>Enter</em>, если он и был нажат.</p><p>Но у меня ничего не выходит :(<br />Моя попытки настолько жалки, что показывать решительно стыдно и нечего (всё танцы с <em>WinGetActiveTitle</em>, <em>Loop</em> и <em>MsgBox</em>).</p><p>Помогите, пожалуйста. Я убеждён, что AHK может и похлеще вещи (тут их тьма).</p>]]></description>
			<author><![CDATA[null@example.com (chegr)]]></author>
			<pubDate>Mon, 12 Aug 2013 15:41:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=74453#p74453</guid>
		</item>
	</channel>
</rss>
