<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12633&amp;type=atom" />
	<updated>2017-04-26T06:45:23Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=12633</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=115335#p115335" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>Я вам еще первым сообщением массивы предлагал.</p></blockquote></div><p>Спасибо, буду пробовать.</p><p>2ypppu, реализация через сокеты мне тоже больше нравится, но у меня не получилось завести эти примеры... Да и проблемы с autohotkey_L испытывал...</p>]]></content>
			<author>
				<name><![CDATA[unKn0wn]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27432</uri>
			</author>
			<updated>2017-04-26T06:45:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=115335#p115335</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=115268#p115268" />
			<content type="html"><![CDATA[<p><a href="http://forum.script-coding.com/viewtopic.php?id=8809">AHK: Портовый приёмник</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=6506">AHK: Прослушивание сетевых пакетов, реагирование на получение пакета</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=7633">AHK: Отправка сообщений в порт</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=9074">AKH-G: Передача данных с нескольких компьютеров на один</a></p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2017-04-24T03:52:18Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=115268#p115268</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=115267#p115267" />
			<content type="html"><![CDATA[<p>Я вам еще первым сообщением массивы предлагал.<br /></p><div class="codebox"><pre><code>i:=0, stop_prog_:=[]
Loop 5 {
	stop_prog_[A_Index] := i++
}
MsgBox % stop_prog_[3]

; stop_prog_:={}
stop_prog_[&quot;MyComp&quot;] := 1
MsgBox % stop_prog_[&quot;MyComp&quot;]

ListBox := &quot;PC1|PC2|PC10&quot;
Loop parse, ListBox, |
{
	IniRead, stop_prog, % &quot;\\&quot; A_LoopField &quot;\c$\help\help.ini&quot;, list_param, stop_prog
	stop_prog_[A_LoopField] := stop_prog
}
MsgBox % stop_prog_[&quot;PC2&quot;]</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-04-24T03:37:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=115267#p115267</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=115266#p115266" />
			<content type="html"><![CDATA[<p>Да, по сути именно так.</p>]]></content>
			<author>
				<name><![CDATA[unKn0wn]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27432</uri>
			</author>
			<updated>2017-04-23T22:05:12Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=115266#p115266</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=115265#p115265" />
			<content type="html"><![CDATA[<p>Короче говоря, Вам нужно:<br />а) давать команду скрипту, который запущен на удалённом компьютере,<br />б) контролировать в режиме реального времени статус того скрипта, верно?</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2017-04-23T21:41:55Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=115265#p115265</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=115264#p115264" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>Не могу понять о чем вы вообще.</p></blockquote></div><p>У меня есть несколько РС скажем 10шт. На которых посредством AHK я выполняю действия и мониторю состояние корпоративной программы. На всех этих 10 РС есть скрипт и ini файл, в котором я храню данные и через который я управляю поведением корпоративной программой.<br />Из примера ini файла выше:<br /></p><div class="quotebox"><blockquote><p>[list_param]<br />start_prog=0<br />stop_prog=0</p></blockquote></div><p>Эти параметры находятся в ini файлах на10 РС (параметров в ini файле гораздо больше, для примера и лучшего понимания сути моего вопроса я опустил эти параметры).<br />Скажем, когда я жму кнопку Start(в гуи на своём основном РС) меняется start_prog на 1 и это запись происходить на выбранных мною в ListBox РС. Запускается моя корп.программа черех AHK скрипт который на этих РС запущен всегда и читает каждые 2сек состояние параметров в ini файле.<br />Т.е, примитивная реализация через AHK клиент-сервер работы со скриптами.</p><p>Встрял на этом моменте:<br />Как получить данные с 10 РС? Не писать же на каждую машину статический код такого типа:<br /></p><div class="codebox"><pre><code>
IniRead, stop_prog,			\\PC1\c$\help\help.ini, list_param, stop_prog
IniRead, start_prog,			\\PC1\c$\help.ini, list_param, start_prog

IniRead, stop_prog,			\\PC2\c$\help\help.ini, list_param, stop_prog
IniRead, start_prog,			\\PC2\c$\help.ini, list_param, start_prog

IniRead, stop_prog,			\\PC3\c$\help\help.ini, list_param, stop_prog
IniRead, start_prog,			\\PC3\c$\help.ini, list_param, start_prog

IniRead, stop_prog,			\\PC4\c$\help\help.ini, list_param, stop_prog
IniRead, start_prog,			\\PC4\c$\help.ini, list_param, start_prog

IniRead, stop_prog,			\\PC5\c$\help\help.ini, list_param, stop_prog
IniRead, start_prog,			\\PC5\c$\help.ini, list_param, start_prog
</code></pre></div><p>И так далее... Немного не правильно, что-ли.&nbsp; Получается куча лишнего кода, которого можно избежать если парсить инфу циклом из listbox&#039;a и подставлять имя РС в путь IniRead(скрипты на тачках расположены по одинаковым путям).<br />Следовательно вместо огромного количества строк кода, будет цикл, который и будет подставлять имя РС, которые уже заведомо известны моему GUI т.к. я имею список РС в ini файле.<br />И будем иметь примерно такой результат:<br /></p><div class="codebox"><pre><code>
IniRead, stop_prog,			\\%pcNameFromList%\c$\help\help.ini, list_param, stop_prog
IniRead, start_prog,			\\%pcNameFromList%c$\help.ini, list_param, start_prog
</code></pre></div><p>И соответственно надо каким-то образом записывать параметры в эти ini файлы на удалённых машинах, но пока я ещё не придумал как это должно выглядеть.<br />Собственно вопрос в том, как это реализовать...</p>]]></content>
			<author>
				<name><![CDATA[unKn0wn]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27432</uri>
			</author>
			<updated>2017-04-23T20:59:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=115264#p115264</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=115262#p115262" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>не могу понять как бы так красиво парсить данные</p></blockquote></div><p>Не могу понять о чем вы вообще. Справку по IniRead прочтите, парсить ничего не надо.<br /></p><div class="quotebox"><blockquote><p>как достать инфу</p></blockquote></div><p>stop_prog_machine[A_LoopField]:=stop_prog<br /></p><div class="quotebox"><blockquote><p>изменить стостояние чекбокса</p></blockquote></div><p>Control Check для существующего; Gui, Add, Checkbox, Checked для нового. Все в справке.<br /></p><div class="codebox"><pre><code>stop_prog := 1
Gui Add, CheckBox, HwndOutputVar , 1
Gui Show
Sleep 1000
box := stop_prog ? &quot;Check&quot; : &quot;Uncheck&quot;
Control % box,,, % &quot;ahk_id&quot; OutputVar</code></pre></div><p>Если надеетесь, что кто-то напишет за вас, выложите весь код, а то неясны детали.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-04-23T12:02:43Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=115262#p115262</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=115261#p115261" />
			<content type="html"><![CDATA[<p>Добрый день. <br />Есть скрипт запущенный на удалённых(несколько компьютеров) РС, который в фоне следит за корпоративной программой, запускает её, закрывает, заставляет выполнять некоторые функции и т.д. Это всё происходит посредством ini файла и команд IniRead и IniWrite. Таким образом я хотел сделать &quot;удалённое управление скриптом клиентом&quot;. С этой частью &quot;удалённого управления&quot; проблем не возникло, но для того чтобы этим всем управлять нужен GUI на основном РС, от куда и менять ini файлы на удалённых машинах чтобы удалённые машины выполняли действия с корпоративной программой.<br />Упёрся в то, что не могу понять как бы так красиво парсить данные с удалённых РС и как красиво их соберать и менять элементы GUI в зависимости от состояния ini файла на удалённой машине.<br />На картинке в атаче примерно то, как я вижу GUI<br />Слева лист РС, правее чекбоксы которые отображают текущее состоянии компьютера (из списка на против названия которого стоит этот чекбокс )start_prog(если 1 то ставить чек если 0 анчек), правее edit в котором отображаю значение stop_prog. А, кнопки выполняют действие, т.е. запускают или выключают корпоративную программу посредством изменения ini файла на удалённой машине.<br />В ini файле расположенном на удалённом РС есть такие записи:<br /></p><div class="codebox"><pre><code>[list_param]
start_prog=0
stop_prog=0</code></pre></div><p>И код для GUI, который должен при запуске опрашивать(iniRead) все компьютеры из списка и отображать информацию в GUI тем самым сразу получить текущее состоянии с удалённых машин(через чекбоксы check\uncheck и поле edit.). И, само собой индивидуальное iniRead и iniWrite посредством выделения РС из listBox и изменения ini через кнопки start, stop.<br /></p><div class="codebox"><pre><code>
IniRead, IniRead, сolors.ini, сolors, сolors, %A_Space%
Gui, Add, ListBox, x12 y50 w100 h260 , vListBox Multi, %IniRead%
Gui, Add, CheckBox, x122 y50 w10 h20 , CheckBox
Gui, Add, CheckBox, x122 y70 w10 h20 , CheckBox
Gui, Add, CheckBox, x122 y90 w10 h20 , CheckBox
Gui, Add, CheckBox, x122 y110 w10 h20 , CheckBox
Gui, Add, CheckBox, x122 y130 w10 h20 , CheckBox
Gui, Add, CheckBox, x122 y150 w10 h20 , CheckBox
Gui, Add, CheckBox, x122 y170 w10 h20 , CheckBox
Gui, Add, Edit, x142 y50 w60 h20 , Edit
Gui, Add, Button, x262 y80 w100 h30 , STOP
Gui, Add, Button, x262 y150 w100 h30 , START
; Generated using SmartGUI Creator 4.0
Gui, Show, x409 y210 h379 w479, New GUI Window
Return

F3::
GuiControlGet, ListBox
Loop, parse, ListBox, | 
{
    StringReplace, Label, A_LoopField, %A_Space%, _, All 
    IniRead, stop_prog,			\\%Label%\c$\help\help.ini, list_param, stop_prog
    %Label%_stop_prog = %stop_prog%
    IniRead, start_prog,			\\%Label%\c$\help.ini, list_param, start_prog
	 %Label%_start_prog = %start_prog%
}
Return

GuiClose:
ExitApp</code></pre></div><p>Собственно циклом запарсил, список, достаю, но не пойму как достать инфу из цикла и изменить стостояние чекбокса и изменить значение в edit поле.</p>]]></content>
			<author>
				<name><![CDATA[unKn0wn]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27432</uri>
			</author>
			<updated>2017-04-23T10:48:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=115261#p115261</id>
		</entry>
</feed>
