<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=8238&amp;type=atom" />
	<updated>2013-04-23T12:24:11Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=8238</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71636#p71636" />
			<content type="html"><![CDATA[<p>Проблемма решилась с помощью Активации материнского целевого окна:</p><div class="codebox"><pre><code>...
Check:
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg ;если убрать эту строчку, то значения чекбоксов не сохраняются
    WinActivate, IPC ahk_class TMainForm ;активируется главное целевое окно
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg ;еще раз идет подтверждение изменений в дочернем целевом окне
...</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-23T12:24:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71636#p71636</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71635#p71635" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>    Winset, Redraw, , ahk_class TAxis_Dlg
    WinMove, ahk_class TAxis_Dlg,
    WinActivate, ahk_class TAxis_Dlg
</code></pre></div><p>Вышеприведенный блок не дал ни каких результатов. По прежнему - пока &quot;руками&quot; не открою окно, данные полей не обновятся.</p><p>---<br />Экспериментально обнаружено - если не &quot;открывать окно руками&quot;, а перезапустить скрипт - то в нем появятся новые, обновленные данные(!!!) <em>*смайлик сильного удивления*</em> ......У меня ступор. Подсобите пожалуйста.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>#Singleinstance force
SetTitleMatchMode 2
DetectHiddenWindows On
SetControlDelay -1

global hGui1, moved, CROSS_CursorHandle, OCR_NORMAL

OCR_NORMAL := 32512    ; обычный курсор в виде стрелки
OCR_CROSS := 32646    ; курсор в виде креста
WM_ACTIVATE := 0x0006
NORMAL_CursorHandle := DllCall( &quot;LoadCursor&quot;, Uint,0, Int, OCR_NORMAL) ; загрузить системный OCR_NORMAL-курсор
CROSS_CursorHandle  := DllCall( &quot;LoadCursor&quot;, Uint,0, Int, OCR_CROSS)   ; загрузить системный OCR_CROSS-курсор

Choice1 := &quot;+3000|+2000|+1000|+800|+700|+600|+500|+400|+300|+200|+100|0000&quot;
Choice2 := &quot;+3000|+2000|+1000|+800|+700|+600|+500|+400|+300|+200|+100|0000|-100|-200|-300|-400|-500|-600|-700|-800|-1000|-1500&quot;
Choice3 := &quot;+10000|+2000|+800|+500|+300|+100|+10.0|+1.00|0.001|0.0001|0000|-10.0|-20&quot;
Choice4 := &quot;+3000|+2000|+1000|+800|+700|+600|+500|+400|+300|+200|+100|0000|-100|-200|-300|-400|-500|-600|-700|-800|-1000|-1500&quot;

boxChoice:={5:&quot;Автомасштаб&quot;, 6:&quot;Дополнит. сетка&quot;, 0:&quot;Lg I&quot;}
ShowHide:=1

Menu, Tray, add, ShowHide, ShowHide
Menu, Tray, Default, ShowHide
Menu, tray, NoStandard 
Menu, tray, Standard 
Menu, Tray, Click, 1

/*
    ;TFloatEdit4 - ось х, минимум
    ;TFloatEdit3 - ось х, максимум
    ;TFloatEdit2 - ось y, минимум
    ;TFloatEdit1 - ось y, максимум
E4 - xMin
E3 - xMin
E2 - yMin
E1 - yMin
E5 - Масштаб
E6 - Дополнит. сетка
E0 - Lg
E7 - график U(T) 
E8 - график I(U)
E9 - график U(I)
*/

Gui, +AlwaysOnTop +LastFound -Caption +Toolwindow +Border -E0x08000000 hwndhGUI1 ; окно поверх всего, без рамок,границ,заголовия
Gui, Margin, 4, 4        
Gui, Font, underline
;по клику на текст xMin происходит обновление значений всех полей в Gui.
Gui, Add, Text, w30 y6 gCheck Center cBlue, xMin 
Gui, Font, norm
Gui, Add, ComboBox, x+ yp-4 w70 gGo vE4, %Choice2%

Gui, Add, Text, x+10 y6 w30 ,yMin
Gui, Add, ComboBox, x+ yp-4 w70 gGo vE2 section, %Choice2%

Gui, Add, Text, x4 y+5 w30 ,xMax
Gui, Add, ComboBox, x+ yp-4 w70 gGo vE3, %Choice2%

Gui, Add, Text, x+10 yp+5 w30 ,yMax
Gui, Add, ComboBox, x+ yp-4 w70 gGo vE1, %Choice2%

Gui, Add, Checkbox, x10 y+10 vE5 gGo, АвтоМасштаб
Gui, Add, Checkbox, x+6 w50 vE6 gGo, Сетка
Gui, Add, Checkbox, x+10 w50 vE0 gGo, Lg

Gui, Font, bold
Gui, Color, silver
Gui, Add, Button, vE7 gGo w50 ys x+0, U(T)
Gui, Add, Button, vE8 gGo w50, I(U)
Gui, Add, Button, vE9 gGo w50, U(I)

Gui, Show, % &quot;xCenter y10&quot;

GoSub, Check
Return ;=======================================================================================================================

ShowHide:
    Gui, % (ShowHide:=1-ShowHide) ? &quot;Show&quot;:&quot;Hide&quot;
Return

Go:
    WinMove(WinID,A_GuiControl)
    if moved
        return

    ;определение номера активированного элемента Gui
    Index:= % SubStr(A_GuiControl, 0)
    ;из-за номера активной страницы TPage зависит номер элементов TFloatEdit
    ControlGet, TabActive, Tab, , TPageControl1, ahk_class TAxis_Dlg 
    ;отсылание команды в целевое окно согласно изменениям в активированном элементе
    if (index=1 || index=2 || index=3 || index=4) {
        GuiControlGet, E%Index%,
        ControlSetText, % &quot;TFloatEdit&quot; Index+2-TabActive, % E%Index% , ahk_class TAxis_Dlg
    } 
    else if (index=5 || index=6 || index=0) {
        ControlClick, % boxChoice[index], ahk_class TAxis_Dlg
    }
    else if (index=7|| index=8 || index=9) {
            ControlClick, TToolbar1, ahk_class TAxis_Dlg, , , , % &quot;X&quot; (Index-7)*70+130 &quot; Y30&quot;
            j:=index-6
            k:=index-5
            GuiControl, , E4, % &quot;|&quot; Choice%j%
            GuiControl, , E3, % &quot;|&quot; Choice%j%
            GuiControl, , E2, % &quot;|&quot; Choice%k%
            GuiControl, , E1, % &quot;|&quot; Choice%k%
            ControlClick, TBitBtn2, ahk_class TAxis_Dlg
            ;обновление значений чекбоксов, т.к. целевое окно почемуто не сохраняет их значений
            GuiControlGet, E5
            GuiControlGet, E6
            GuiControlGet, E0
            Control, % E5 ? &quot;Check&quot; : &quot;Uncheck&quot;,, Автомасштаб, ahk_class TAxis_Dlg
            Control, % E6 ? &quot;Check&quot; : &quot;Uncheck&quot;,, Дополнит. сетка, ahk_class TAxis_Dlg
            Control, % E0 ? &quot;Check&quot; : &quot;Uncheck&quot;,, Lg I, ahk_class TAxis_Dlg
    }
    
;обновление значений в окне Gui согласно данным в целевом овне    
Check:
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    Sleep, 50
    ControlGet, TabActive, Tab, , TPageControl1, ahk_class TAxis_Dlg
    loop, 4 
        {
        ControlGetText, E%A_Index%,  % &quot;TFloatEdit&quot; A_Index+2-TabActive , ahk_class TAxis_Dlg
        GuiControl, Text, E%A_Index%, % E%A_Index%
        ControlGet, Z%A_Index%, Enabled, , % &quot;TFloatEdit&quot; A_Index+2-TabActive , ahk_class TAxis_Dlg
        GuiControl, % Z%A_Index% ? &quot;Enable&quot; : &quot;Disable&quot; , E%A_Index%
    }
    ControlGet, E5, Checked, , Автомасштаб, ahk_class TAxis_Dlg
    ControlGet, E6, Checked, , Дополнит. сетка, ahk_class TAxis_Dlg
    ControlGet, E0, Checked, , Lg I, ahk_class TAxis_Dlg
    GuiControl, , E5, % E5 ? 1 : 0
    GuiControl, , E6, % E6 ? 1 : 0
    GuiControl, , E0, % E0 ? 1 : 0
    ControlGet, Z, Enabled, , Автомасштаб, ahk_class TAxis_Dlg
    GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E5
    ControlGet, Z, Enabled, , Дополнит. сетка, ahk_class TAxis_Dlg
    GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E6
    ControlGet, Z, Enabled, , Lg I, ahk_class TAxis_Dlg
    GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E0
return

;передвижение окна правой клавишей мышки 
~RButton::
    MouseGetPos,,, WinID, A_GC
    if (WinID = hGui1)
        WinMove(WinID, A_GC)
return
    
WinMove(WinID, A_GC)
{
    CoordMode, Mouse
    SetWinDelay, -1
    SetBatchLines, -1
    MouseGetPos, Start_X, Start_Y
    WinGetPos, X_Win, Y_Win,,, ahk_id %WinID%
    While GetKeyState(&quot;RButton&quot;, &quot;P&quot;)
    {
        if !hand                                     ;изменение вида курсора при перетягивании окна
            DllCall(&quot;SetSystemCursor&quot;, UInt, CROSS_CursorHandle, Int, OCR_NORMAL) , hand:=1
        MouseGetPos, Current_X, Current_Y
        moved := (Current_X != Start_X || Current_Y != Start_Y) ? 1 : &quot;&quot;
        WinMove, ahk_id %WinID%,, X_Win + Current_X - Start_X, Y_Win + Current_Y - Start_Y
         Sleep, 10
    }
    if (hand)                                ;изменение вида курсора при окончании перетягивания окна
        DllCall(&quot;SystemParametersInfo&quot;, UInt, SPI_SETCURSORS:=0x57, UInt, 0, UInt, 0, UInt, 0), hand:=&quot;&quot;
}

Return</code></pre></div></div></div><p>added: И еще обнаружено, что если в конце блока <strong>Check</strong> поставить<strong> MsgBox,</strong>, то обновление полей в Gui окне происходит...почему? <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-23T07:52:07Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71635#p71635</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71626#p71626" />
			<content type="html"><![CDATA[<p>Пробуйте что-то из <span class="bbu">WinSet</span>. Style на визибл, Redraw, может быть и <span class="bbu">WinMove</span>.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-22T12:53:13Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71626#p71626</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71625#p71625" />
			<content type="html"><![CDATA[<p>Имелось ввиду это - <strong>ahk_class TAxis_Dlg</strong></p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-22T12:47:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71625#p71625</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71624#p71624" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Знаю заголовок окна и его классNN</p></blockquote></div><p>классNN <span class="bbu">окна</span>?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-22T12:41:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71624#p71624</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71622#p71622" />
			<content type="html"><![CDATA[<p>Нет, я хочу его вызвать. (процедура вызова окна &quot;Редактор осей&quot; описана в первом посте, первый абзац)<br />Но, т.к. нет определенного контрала (кнопка, чекбокс итд) который его вызывает, то , раньше, мне приходилось искать попиксельно координаты оси&nbsp; и жать по этим координатам мышкой. Теперь же хочу уйти от поиска. Знаю заголовок окна и его класс, пытаюсь его активировать командой. <br />По <strong>WinActivate</strong> окно не появляется.<br />По <strong>WinShow</strong> окно появляется, но оно не функцинально. Потом приходится перезапускать всю программу.</p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-22T12:37:59Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71622#p71622</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71620#p71620" />
			<content type="html"><![CDATA[<p>Вы просто хотите регистрировать факты активации окна &quot;Редактор осей&quot; ?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-22T12:28:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71620#p71620</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71617#p71617" />
			<content type="html"><![CDATA[<p>И еще вопрос по поводу дочерних окон.</p><p>Тогда, пол года назад, когда я писал первую программу для работы с дочерним окошком &quot;<strong>Редактор осей</strong>&quot; я через PixelSearch (по моему) искал ось на главном окне программы и скрипт жал в нее <strong>LButton</strong>-ом, и уж затем, в нем проводились все манипуляции.<br />Сейчас все работает и без вызова окна &quot;<strong>Редактор осей</strong>&quot;, но - иногда надо его вызвать, чтобы оно обновило значения в полях. Есть ли возможность реализовать вызов окошка &quot;<strong>Редактор осей</strong>&quot; минуя процесс поиска пикселей? Я пытался отловить сообщения WM_ACTIVATE - я в правильном направлении думаю?</p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-22T11:30:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71617#p71617</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71526#p71526" />
			<content type="html"><![CDATA[<ul><li><p>конфликт с задержкой поборол чтением мануала и, как следствие, выставлением <strong>SetControlDelay -1</strong></p></li><li><p>обратная связь от TToolbar1 перестала быть нужной когда я осознал &quot;что мне таки от него надо&quot;</p></li><li><p><strong>извлекать данные из контрола для проверки, и нажимать заново если не ГУД</strong> - большое спасибо! Именно так и сделал.</p></li></ul><p>Приведу код, &quot;для отчетности&quot; так сказать, хоть скрипт ни для кого кроме меня не имеет полезности в плане использования:<br /></p><div class="codebox"><pre><code>#Singleinstance force
SetTitleMatchMode 2
DetectHiddenWindows On
SetControlDelay -1

xChoice := &quot;+3000|+2000|+1000|+800|+700|+600|+500|+400|+300|+200|+100|0000|-100|-200|-300|-400|-500|-600|-700|-800|-1000|-1500&quot;
yChoice := &quot;+10000|+2000|+800|+500|+300|+100|+10.0|+1.00|0.001|0.0001|0000|-10.0|-20&quot;
boxChoice:={5:&quot;Автомасштаб&quot;, 6:&quot;Дополнит. сетка&quot;, 0:&quot;Lg I&quot;}
ShowHide:=1

Menu, Tray, add, ShowHide, ShowHide
Menu, Tray, Default, ShowHide
Menu, tray, NoStandard 
Menu, tray, Standard 
Menu, Tray, Click, 1

/*
    ;TFloatEdit4 - ось х, минимум
    ;TFloatEdit3 - ось х, максимум
    ;TFloatEdit2 - ось y, минимум
    ;TFloatEdit1 - ось y, максимум
E4 - xMin
E3 - xMin
E2 - yMin
E1 - yMin
E5 - Масштаб
E6 - Дополнит. сетка
E0 - Lg
*/


ControlGet, E5, Checked, , Автомасштаб, ahk_class TAxis_Dlg
ControlGet, E6, Checked, , Дополнит. сетка, ahk_class TAxis_Dlg
ControlGet, E10, Checked, , Lg I, ahk_class TAxis_Dlg


Gui, +AlwaysOnTop +LastFound -Caption +Toolwindow +Border -E0x08000000 hwndhGUI1 ; окно поверх всего, без рамок,границ,заголовия
Gui, Margin, 4, 4        
Gui, Font, underline
Gui, Add, Text, w30 y6 gGo Center cBlue, xMin ;
Gui, Font, norm
Gui, Add, ComboBox, x+ yp-4 w70 gGo vE4, %xChoice%
Gui, Add, Text, x+10 y6 w30 ,yMin
Gui, Add, ComboBox, x+ yp-4 w70 gGo vE2 section, %yChoice%
Gui, Add, Text, x4 y+5 w30 ,xMax
Gui, Add, ComboBox, x+ yp-4 w70 gGo vE3, %xChoice%
Gui, Add, Text, x+10 yp+5 w30 ,yMax
Gui, Add, ComboBox, x+ yp-4 w70 gGo vE1, %yChoice%

Gui, Add, Checkbox, x10 y+10 vE5 gGo, АвтоМасштаб
Gui, Add, Checkbox, x+6 w50 vE6 gGo, Сетка
Gui, Add, Checkbox, x+10 w50 vE0 gGo, Lg

Gui, Font, bold
Gui, Color, silver
Gui, Add, Button, vE7 gGo w50 ys x+0, U(T)
Gui, Add, Button, vE8 gGo w50, I(U)
Gui, Add, Button, vE9 gGo w50, U(I)

Gui, Show, % &quot;xCenter y10&quot;

GoSub, Go
Return ;=======================================================================================================================

ShowHide:
    Gui, % (ShowHide:=1-ShowHide) ? &quot;Show&quot;:&quot;Hide&quot;

Go:
;    ww:= WinExist(&quot;ahk_class TAxis_Dlg&quot;) ? &quot;-Disabled&quot; : &quot;+Disabled&quot;
;    Gui, %hGUI1%: %ww% 
    Index:= % SubStr(A_GuiControl, 0)
    if (index=1 || index=2 || index=3 || index=4) {
        GuiControlGet, E%Index%,
        ControlGet, TabActive, Tab, , TPageControl1, ahk_class TAxis_Dlg
        ControlSetText, % &quot;TFloatEdit&quot; Index+2-TabActive, % E%Index% , ahk_class TAxis_Dlg
    } 
    else if (index=5 || index=6 || index=0) {
        ControlClick, % boxChoice[index], ahk_class TAxis_Dlg
    }
    else if (index=7 || index=8 || index=9) {
        ControlClick, TToolbar1, ahk_class TAxis_Dlg, , , , % &quot;X&quot; (Index-7)*70+130 &quot; Y30&quot;
        ControlClick, TBitBtn2, ahk_class TAxis_Dlg
        GuiControlGet, E5
        GuiControlGet, E6
        GuiControlGet, E0
        Control, % E5 ? &quot;Check&quot; : &quot;Uncheck&quot;,, Автомасштаб, ahk_class TAxis_Dlg
        Control, % E6 ? &quot;Check&quot; : &quot;Uncheck&quot;,, Дополнит. сетка, ahk_class TAxis_Dlg
        Control, % E0 ? &quot;Check&quot; : &quot;Uncheck&quot;,, Lg I, ahk_class TAxis_Dlg
    }
    
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    Sleep, 100
    ControlGet, TabActive, Tab, , TPageControl1, ahk_class TAxis_Dlg
    loop, 4 
        {
        ControlGetText, E%A_Index%,  % &quot;TFloatEdit&quot; A_Index+2-TabActive , ahk_class TAxis_Dlg
        GuiControl, Text, E%A_Index%, % E%A_Index%
        ControlGet, Z%A_Index%, Enabled, , % &quot;TFloatEdit&quot; A_Index+2-TabActive , ahk_class TAxis_Dlg
        GuiControl, % Z%A_Index% ? &quot;Enable&quot; : &quot;Disable&quot; , E%A_Index%
    }
    ControlGet, E5, Checked, , Автомасштаб, ahk_class TAxis_Dlg
    ControlGet, E6, Checked, , Дополнит. сетка, ahk_class TAxis_Dlg
    ControlGet, E0, Checked, , Lg I, ahk_class TAxis_Dlg
    GuiControl, , E5, % E5 ? 1 : 0
    GuiControl, , E6, % E6 ? 1 : 0
    GuiControl, , E0, % E0 ? 1 : 0
        ControlGet, Z, Enabled, , Автомасштаб, ahk_class TAxis_Dlg
        GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E5
        ControlGet, Z, Enabled, , Дополнит. сетка, ahk_class TAxis_Dlg
        GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E6
        ControlGet, Z, Enabled, , Lg I, ahk_class TAxis_Dlg
        GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E0
    return
            
Return</code></pre></div><p>...Не знаю - менять название темы или нет? Все таки она не отображает содержания.</p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-18T10:56:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71526#p71526</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71508#p71508" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Пытаюсь получить от него <strong>обратную связь через ControlGet</strong>, но пока безрезультатно.</p></blockquote></div><div class="quotebox"><blockquote><p>Все гениальное просто - поборол TToolbar1 через ControlClick.</p></blockquote></div><p>Извчение данных и нажатие... Одно и тоже?<br /></p><div class="quotebox"><blockquote><p>Иногда, если быстро нажать клавишу в моем GUIокне чекбокс и двинуть мышку, то чекбокс нажимается, но в целевом окне не происходит изменений. Борюсь с этим плавными движениями мышки&nbsp; ...Но хотелось бы подойти к вопросу с &quot;научной стороны&quot;.</p></blockquote></div><p>SetControlDelay и BlockInput в помощь. <br />Ну и чтоб наверняка, извлекать данные из контрола для проверки, и нажимать заново если не ГУД.</p><div class="quotebox"><blockquote><p>Если я работаю через свое GUIокно... то изменения в целевом окне тоже происходят сразу, однако, целевое окно не сохраняет значения чекбоксов.</p></blockquote></div><p>Можно пример кода покороче, и с хоткеем.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-17T19:08:36Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71508#p71508</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71507#p71507" />
			<content type="html"><![CDATA[<p>Попробуйте устанавливать значения чекбоксов при помощи ControlClick, а не Control.<br /></p><div class="codebox"><pre><code>Control, % E5 ? &quot;Check&quot; : &quot;UnCheck&quot;,, Автомасштаб, ahk_class TAxis_Dlg</code></pre></div><p>— отправляет чекбоксу сообщение, «уведомляющее его» отобразить/не отображать отметку. Отправленный клик может обрабатываться окном иначе.</p>]]></content>
			<author>
				<name><![CDATA[creature.ws]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26105</uri>
			</author>
			<updated>2013-04-17T19:00:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71507#p71507</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71506#p71506" />
			<content type="html"><![CDATA[<p>Все гениальное просто - поборол <em><strong>TToolbar1</strong></em> через <strong><em>ControlClick</em></strong>.</p><p>В целом доволен работой скрипта и благодарю всех за их примеры с этого форума, но без пары вопросов не уйду <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>Постараюсь описать понятно.<br />-&nbsp; я отсылаю команды через <strong><em>Control</em></strong>, <em><strong>ControlSetText</strong></em>, <strong><em>ControlClick</em></strong>. Иногда, если быстро нажать клавишу в моем GUIокне чекбокс и двинуть мышку, то чекбокс нажимается, но в целевом окне не происходит изменений. Борюсь с этим плавными движениями мышки <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /> ...Но хотелось бы подойти к вопросу с &quot;научной стороны&quot;.</p><p>- Второй вопрос позаковыристей - (в качестве предисловия - при нажатии на кнопку на панели <em><strong>TToolbar1</strong></em> изменения на графике происходят сразу, но если после этого нажать на кнопку &quot;отмена&quot; в окне &quot;Редактор осей&quot;, то изменения отменяются. Если нажать на кнопку &quot;ОК&quot; то все изменения сохраняются) Если я работаю через свое GUIокно, через <em><strong>ControlClick, TToolbar1, ahk_class TAxis_Dlg, , , , X280 Y30</strong></em> то изменения в целевом окне тоже происходят сразу, однако, целевое окно не сохраняет значения чекбоксов. <br />К примеру - на осях <strong>I(U)</strong> я убрал галочку <strong>Lg</strong> (все отображается, все хорошо), после этого перехожу на оси <strong>U(I)</strong>, а оно мне опять включает логарифмическую шкалу. Может я как-то не так посылаю <strong><em>Control</em></strong>, <em><strong>ControlSetText</strong></em>, <strong><em>ControlClick</em></strong> ???</p><br /><div class="codebox"><pre><code>#Singleinstance force
SetTitleMatchMode 2
DetectHiddenWindows On

SetControlDelay 10
SetMouseDelay 20
xChoice := &quot;+3000|+2000|+1000|+800|+700|+600|+500|+400|+300|+200|+100|0000|-100|-200|-300|-400|-500|-600|-700|-800|-1000|-1500&quot;
yChoice := &quot;+10000|+2000|+800|+500|+300|+100|+10.0|+1.00|0.001|0.0001|0000|-10.0|-20&quot;
ShowHide:=1

Menu, Tray, add, ShowHide, ShowHide
Menu, Tray, Default, ShowHide
Menu, tray, NoStandard 
Menu, tray, Standard 
Menu, Tray, Click, 1

/*
    ;TFloatEdit4 - ось х, минимум
    ;TFloatEdit3 - ось х, максимум
    ;TFloatEdit2 - ось y, минимум
    ;TFloatEdit1 - ось y, максимум
E4 - xMin
E3 - xMin
E2 - yMin
E1 - yMin
E5 - Масштаб
E6 - Дополнит. сетка
E10 - Lg
*/


ControlGet, E5, Checked, , Автомасштаб, ahk_class TAxis_Dlg
ControlGet, E6, Checked, , Дополнит. сетка, ahk_class TAxis_Dlg
ControlGet, E10, Checked, , Lg I, ahk_class TAxis_Dlg


Gui, +AlwaysOnTop +LastFound -Caption +Toolwindow -E0x08000000 hwndhGUI1 ; окно поверх всего, без рамок,границ,заголовия
Gui, Margin, 4, 2        
Gui, Add, Text, w30 gGetCoord Border Center, xMin
Gui, Add, ComboBox, x+ w70 gXMinChange vE4, %xChoice%
Gui, Add, Text, x+10 w30 ,yMin
Gui, Add, ComboBox, x+ w70 gyMinChange vE2 section, %yChoice%
Gui, Add, Text, x4 w30 ,xMax
Gui, Add, ComboBox, x+ w70 gXMaxChange vE3, %xChoice%
Gui, Add, Text, x+10 w30 ,yMax
Gui, Add, ComboBox, x+ w70 gyMaxChange vE1, %yChoice%

Gui, Add, Checkbox, x10 y+10 vE5 gAutoChange, Масштаб
Gui, Add, Checkbox, x+6 w50 vE6 gGridChange, Сетка
Gui, Add, Checkbox, x+10 w50 vE10 gLgChange, Lg ;= %E10%

Gui, Font, bold
Gui, Color, silver
Gui, Add, Button, vE7 gAxisUT w50 ys x+23 hwndhButton1, U(T)
Gui, Add, Button, vE8 gAxisIU w50 hwndhButton2, I(U)
Gui, Add, Button, vE9 gAxisUI w50 hwndhButton3, U(I)

Gui, Show, % &quot;xCenter y10&quot; ;WorkAreaRight-20

GoSub, GetCoord
;SetTimer, IPCcheck, 1000
;SetTimer, WatchCursor, 500
Return ;=======================================================================================================================

LgChange: 
    GuiControlGet, E10,
    Control, % E10 ? &quot;Check&quot; : &quot;UnCheck&quot;,, Lg I, ahk_class TAxis_Dlg
    Sleep, 100
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    GoSub, GetCoord
    return
AutoChange:
    GuiControlGet, E5,
    Control, % E5 ? &quot;Check&quot; : &quot;UnCheck&quot;,, Автомасштаб, ahk_class TAxis_Dlg
    Sleep, 100
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    GoSub, GetCoord
    return

GridChange:
    GuiControlGet, E6,
    Control, % E6 ? &quot;Check&quot; : &quot;UnCheck&quot;,, Дополнит. сетка, ahk_class TAxis_Dlg
    Sleep, 100
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    GoSub, GetCoord
    return

xMinChange:
XMaxChange:
yMinChange:
yMaxChange:
    Index:= % SubStr(A_GuiControl, 0)
    GuiControlGet, E%Index%,
    ControlSetText, TFloatEdit%Index%, % E%Index% , ahk_class TAxis_Dlg
    Sleep, 100
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    return

GetCoord:
;    ww:= WinExist(&quot;ahk_class TAxis_Dlg&quot;) ? &quot;-Disabled&quot; : &quot;+Disabled&quot;
;    Gui, %hGUI1%: %ww% 
    ControlGet, TabActive, Tab, , TPageControl1, ahk_class TAxis_Dlg
    loop, 4 
        {
        ControlGetText, E%A_Index%,  % &quot;TFloatEdit&quot; A_Index+2-TabActive , ahk_class TAxis_Dlg
        GuiControl, Text, E%A_Index%, % E%A_Index%
        ControlGet, Z%A_Index%, Enabled, , % &quot;TFloatEdit&quot; A_Index+2-TabActive , ahk_class TAxis_Dlg
        GuiControl, % Z%A_Index% ? &quot;Enable&quot; : &quot;Disable&quot; , E%A_Index%
        }
    ControlGet, E5, Checked, , Автомасштаб, ahk_class TAxis_Dlg
    ControlGet, E6, Checked, , Дополнит. сетка, ahk_class TAxis_Dlg
    ControlGet, E10, Checked, , Lg I, ahk_class TAxis_Dlg
    GuiControl, , E5, % E5 ? 1 : 0
    GuiControl, , E6, % E6 ? 1 : 0
    GuiControl, , E10, % E10 ? 1 : 0
        ControlGet, Z, Enabled, , Автомасштаб, ahk_class TAxis_Dlg
        GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E5
        ControlGet, Z, Enabled, , Дополнит. сетка, ahk_class TAxis_Dlg
        GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E6
        ControlGet, Z, Enabled, , Lg I, ahk_class TAxis_Dlg
        GuiControl, % Z ? &quot;Enable&quot; : &quot;Disable&quot; , E10
    return


ShowHide:
    Gui, % (ShowHide:=1-ShowHide) ? &quot;Show&quot;:&quot;Hide&quot;
    Return
AxisUT:
    ControlClick, TToolbar1, ahk_class TAxis_Dlg, , , , X130 Y30
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    GoSub, GetCoord
    return
AxisIU:
    ControlClick, TToolbar1, ahk_class TAxis_Dlg, , , , X200 Y30
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    GoSub, GetCoord
    return
AxisUI:
    ControlClick, TToolbar1, ahk_class TAxis_Dlg, , , , X280 Y30
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    ControlClick, TBitBtn2, ahk_class TAxis_Dlg
    GoSub, GetCoord
    return
            
Return</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-17T18:53:41Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71506#p71506</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71498#p71498" />
			<content type="html"><![CDATA[<p>Извиняюсь за ошибку - <strong><em>TToolbar1</em></strong> у меня. А программу выкладывать не вижу смысла пока, т.к. кода отвечающего за обращение к TToolbar1 вообще нету.</p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-17T13:14:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71498#p71498</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71481#p71481" />
			<content type="html"><![CDATA[<p>Так TToolBox1 или TToolbar1?<br />Проще, выложите программу.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2013-04-16T21:57:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71481#p71481</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: отсылание комманд элементам дочернего окна программы IPC2000.exe]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=71479#p71479" />
			<content type="html"><![CDATA[<p>Возвращает <em><strong>Errorlevel</strong></em> = 1</p><p>Команда <em>ControlGet, E11, Tab, , TToolbar1, ahk_class TAxis_Dlg</em> - вернула 1 в Е11</p><p>off: ушел домой. отвечу только завтра.</p>]]></content>
			<author>
				<name><![CDATA[Mikki]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5905</uri>
			</author>
			<updated>2013-04-16T18:41:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=71479#p71479</id>
		</entry>
</feed>
