<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Дописывает текст если есть изменения]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9739&amp;type=atom" />
	<updated>2014-07-01T13:49:39Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=9739</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дописывает текст если есть изменения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84392#p84392" />
			<content type="html"><![CDATA[<p>Спасибо помогло</p>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2014-07-01T13:49:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84392#p84392</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дописывает текст если есть изменения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84391#p84391" />
			<content type="html"><![CDATA[<p>Раз уже здесь квадратные скобки, то удобно использовать методы работы с ини файлами.<br /></p><div class="codebox"><pre><code>
File = %A_ScriptDir%\sp.txt
Filedelete, %File% 

Loop 5
{ 
    IniWrite, %A_TickCount%, %File%, Nickname
    
    IniRead, Var, %File%, Nickname
    MsgBox % Var
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2014-07-01T11:53:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84391#p84391</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дописывает текст если есть изменения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84385#p84385" />
			<content type="html"><![CDATA[<p>Хм, почитав справку и поискав по форуму я не нашел того что мне нужно(</p><p>Вот скрипт:<br /></p><div class="codebox"><pre><code>objWMIService := ComObjGet(&quot;winmgmts:\\.\root\cimv2&quot;)
colItems := objWMIService.ExecQuery(&quot;SELECT * FROM Win32_LogicalDisk&quot;)._NewEnum
colItems[objItem]
VolumeID := objItem.VolumeSerialNumber


objWMIService := ComObjGet(&quot;winmgmts:\\.\root\cimv2&quot;)
colItems := objWMIService.ExecQuery(&quot;SELECT * FROM Win32_PhysicalMedia&quot;)._NewEnum
colItems[objItem]
HardwareID := objItem.SerialNumber

F2::
InputBox, Nicknameinput, Nick name, Please enter a nick name
InputBox, ExtIP, IP address, Please enter a IP address

FileAppend,
(
[HardwareID]
%HardwareID%
[VolumeID]
%VolumeID%
[IPAddress]
%ExtIP%`n
[Nickname]
%Nicknameinput%`n
), sp.txt
return

F3::
InputBox, Nicknameinput, Nick name, Please enter a nick name
InputBox, ExtIP, IP address, Please enter a IP address

; Как-то ищет в файле sp.txt строку [Nickname] и добавляет после этой строки Nicknameinput и тоже самое для [IPAddress]
FileAppend, %Nicknameinput%`n, sp.txt
FileAppend, %ExtIP%`n, sp.txt
return</code></pre></div><p>То есть после нажатия F2 на выходе выходит такой текстовый файл:<br /></p><div class="codebox"><pre><code>[HardwareID]
S13DJC0S411456      
[VolumeID]
B26D5B47
[IPAddress]
39.44.105.227
[Nickname]
Vasya</code></pre></div><p>Нажимаю F2 ввожу данные и создается файл, далее нажимаю F3 ввожу новые данные, которые добавляются в этот файл.<br />Как найти в файле sp.txt строку [Nickname] и добавить после этой строки Nicknameinput и тоже самое для [IPAddress]?</p><p>После нажатия F3 и ввода каждый раз новых данных надо что бы получился текстовый файл такого вида:<br /></p><div class="codebox"><pre><code>[HardwareID]
S13DJC0S411456      
[VolumeID]
B26D5B47
[IPAddress]
39.44.105.227
12.23.45.666
56.78.12.744
[Nickname]
Vasya
Dima
Valya</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2014-07-01T10:10:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84385#p84385</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дописывает текст если есть изменения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84226#p84226" />
			<content type="html"><![CDATA[<p>Может &quot;FileAppend&quot; подойдет. Или &quot;iniWrite&quot;.</p>]]></content>
			<author>
				<name><![CDATA[Alectric]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26027</uri>
			</author>
			<updated>2014-06-26T07:18:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84226#p84226</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Дописывает текст если есть изменения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84221#p84221" />
			<content type="html"><![CDATA[<p>Смотрите пример команды <em>Loop (чтение файла)</em> с использованием <em>IfInString</em>.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2014-06-26T03:27:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84221#p84221</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Дописывает текст если есть изменения]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=84213#p84213" />
			<content type="html"><![CDATA[<p>Здравствуйте.<br />Нашел такие функции, которые узнает серийный номер жесткого диска и volume дисков:</p><div class="codebox"><pre><code>objWMIService := ComObjGet(&quot;winmgmts:\\.\root\cimv2&quot;)
colItems := objWMIService.ExecQuery(&quot;SELECT * FROM Win32_LogicalDisk&quot;)._NewEnum
while colItems[objItem]
{
        MsgBox, % &quot;Drives:`t`t&quot; . objItem.Caption . &quot;`n&quot;
            . &quot;Volume Serial No:`t&quot; . objItem.VolumeSerialNumber
}</code></pre></div><p>и<br /></p><div class="codebox"><pre><code>objWMIService := ComObjGet(&quot;winmgmts:\\.\root\cimv2&quot;)
colItems := objWMIService.ExecQuery(&quot;SELECT * FROM Win32_PhysicalMedia&quot;)._NewEnum
while colItems[objItem]
{
        MsgBox, % &quot;Hardware Serial No:`t&quot; . objItem.SerialNumber
}</code></pre></div><p>Узнать свой внешний IP адрес:</p><div class="codebox"><pre><code>UrlDownloadToFile, http://ip.ahk4.me/, %A_Temp%\ip.ahk4.me

FileRead, ExtIP, %A_Temp%\ip.ahk4.me

MsgBox % ExtIP</code></pre></div><p>Суть скрипта: создает txt или ini файл. Туда записывает серийник HDD и Volume id так же записывает IP. Далее при следующем запуске скрипта скрипт проверяет txt или ini файл и если есть изменения например в IP адресе то ДОПИСЫВАЕТ новый ип и так каждый раз при запуске скрипта.<br />Как записывать я знаю, а вот как сделать что бы каждый раз дописывал новое если есть изменения я не понимаю.</p>]]></content>
			<author>
				<name><![CDATA[Dworkin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27052</uri>
			</author>
			<updated>2014-06-25T19:35:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=84213#p84213</id>
		</entry>
</feed>
