<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=12633</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=12633&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: GUI и работа с удалённым скриптом через ini файлы».]]></description>
		<lastBuildDate>Wed, 26 Apr 2017 06:45:23 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=115335#p115335</link>
			<description><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>Я вам еще первым сообщением массивы предлагал.</p></blockquote></div><p>Спасибо, буду пробовать.</p><p>2ypppu, реализация через сокеты мне тоже больше нравится, но у меня не получилось завести эти примеры... Да и проблемы с autohotkey_L испытывал...</p>]]></description>
			<author><![CDATA[null@example.com (unKn0wn)]]></author>
			<pubDate>Wed, 26 Apr 2017 06:45:23 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=115335#p115335</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=115268#p115268</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Mon, 24 Apr 2017 03:52:18 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=115268#p115268</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=115267#p115267</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Mon, 24 Apr 2017 03:37:26 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=115267#p115267</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=115266#p115266</link>
			<description><![CDATA[<p>Да, по сути именно так.</p>]]></description>
			<author><![CDATA[null@example.com (unKn0wn)]]></author>
			<pubDate>Sun, 23 Apr 2017 22:05:12 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=115266#p115266</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=115265#p115265</link>
			<description><![CDATA[<p>Короче говоря, Вам нужно:<br />а) давать команду скрипту, который запущен на удалённом компьютере,<br />б) контролировать в режиме реального времени статус того скрипта, верно?</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sun, 23 Apr 2017 21:41:55 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=115265#p115265</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=115264#p115264</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (unKn0wn)]]></author>
			<pubDate>Sun, 23 Apr 2017 20:59:34 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=115264#p115264</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=115262#p115262</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (stealzy)]]></author>
			<pubDate>Sun, 23 Apr 2017 12:02:43 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=115262#p115262</guid>
		</item>
		<item>
			<title><![CDATA[AHK: GUI и работа с удалённым скриптом через ini файлы]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=115261#p115261</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (unKn0wn)]]></author>
			<pubDate>Sun, 23 Apr 2017 10:48:15 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=115261#p115261</guid>
		</item>
	</channel>
</rss>
