<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Пакетный FileInstall]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=13279&amp;type=atom" />
	<updated>2017-12-09T08:33:51Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=13279</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122110#p122110" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Mambr пишет:</cite><blockquote><p><strong>serzh82saratov</strong>, не понял. Немного подробнее, если можно ...</p></blockquote></div><div class="codebox"><pre><code>
#SingleInstance Force
#NoEnv
SetWorkingDir %A_ScriptDir%
ListLines Off
SetBatchLines -1

ScriptName = Script.ahk  ;	скрипт который будем компилировать
IncludeName = FileInstallInclude.ahk

  ;	File на примере - D:\Folder1\Folder2 после указываем | Dest
  ;	Dest - если `%A_Temp`%\MyFolder, то распакуется по пути  - %A_Temp%\MyFolder
  ;	Знаки процента надо экранировать
  ;	Dest - если пусто, то распакуется по такому же пути - D:\Folder1\Folder2
  ;	Вместо папки можно добавить файл
  
List = 
( 
%A_ScriptDir% | MyFolder
)
	
Loop, Parse, List, `n
{
	File := StrSplit(A_LoopField, &quot;|&quot;, A_Space A_Tab)[1]
	Dest := StrSplit(A_LoopField, &quot;|&quot;, A_Space A_Tab)[2] 
	isFolder := InStr(FileExist(File), &quot;D&quot;) ? &quot;\*.*&quot; : &quot;&quot;
	Loop, %File%%isFolder%, , 1
	{
		If (Dest = &quot;&quot;)
			Add := A_LoopFileLongPath
		Else
			Add := Dest . StrReplace(A_LoopFileLongPath, File, &quot;&quot;, , 1) 
		SplitPath, Add, , Dir
		DirList0 .= Dir &quot;`n&quot;
		IncludeList .= &quot;FileInstall`, &quot; A_LoopFileLongPath &quot;`, &quot; Add &quot;`, 1`n&quot;
	}
}
Sort, DirList0, U`n
DirList0 := RegExReplace(DirList0,&quot;sm`a)^(.+)\\.*\K^\1(\R|$)|^(.+)(\R|$)(?=.*^\3\\)&quot;)  ;	http://forum.script-coding.com/viewtopic.php?pid=113785#p113785
Loop, Parse, % Trim(DirList0, &quot;`n&quot;), `n
	DirList .= &quot;FileCreateDir`, &quot; A_LoopField &quot;`n&quot;
FileDelete, %IncludeName% 
FileAppend, % DirList . IncludeList, % IncludeName
MsgBox % DirList . IncludeList
RunWait Ahk2Exe.exe /in %ScriptName%
FileDelete, %IncludeName%
ExitApp
Escape:: ExitApp
</code></pre></div><p>В начало скрипта добавляем #Include *i:</p><div class="codebox"><pre><code>#Include *i %A_ScriptDir%\FileInstallInclude.ahk</code></pre></div><p>И зачем так сделано, что FileInstall сам не создаёт папки в которые будет извлекать файлы...</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2017-12-09T08:33:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122110#p122110</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122104#p122104" />
			<content type="html"><![CDATA[<p>Да, я только для друга делаю, а он у меня один.<br />В общем, варианты есть, теперь надо выбрать &quot;для самых ленивых&quot;.</p>]]></content>
			<author>
				<name><![CDATA[Mambr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34398</uri>
			</author>
			<updated>2017-12-09T04:06:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122104#p122104</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122103#p122103" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>stealzy пишет:</cite><blockquote><p>чем устанавливать каждому.</p></blockquote></div><p>Так речь шла об одном человеке. Поэтому проще установить.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-12-09T04:03:09Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122103#p122103</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122101#p122101" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Не проще ли вам установить ему автохотки и тогда разницы с экзешником он не заметит - так же тыкнул мышью и все заработало.</p></blockquote></div><p>Вероятно, так и придется сделать. Уже задумывался над этим вопросом. Сегодня пойду ему винду переустанавливать, и поставлю AHK, чтоб он мне мозг не выносил ... <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Mambr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34398</uri>
			</author>
			<updated>2017-12-09T03:50:24Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122101#p122101</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122100#p122100" />
			<content type="html"><![CDATA[<p>Инсталлер отличается только тем, что появляются записи в реестре и прогу можно удалить из &quot;Мои программы&quot;. Такое можно тоже сделать на ahk - <a href="https://github.com/stealzy/VirusTotalHashChecker">пример</a>.<br />А в архив и так можно сжать.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-12-09T03:46:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122100#p122100</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122099#p122099" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Mambr пишет:</cite><blockquote><p>Он не понимает, что такое скрипт и как его съесть. Для него exe - это понятная штука - клацнул мышой и все заработало!</p></blockquote></div><p>Не проще ли вам установить ему автохотки и тогда разницы с экзешником он не заметит - так же тыкнул мышью и все заработало.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2017-12-09T03:44:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122099#p122099</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122097#p122097" />
			<content type="html"><![CDATA[<p>Иногда, когда очень большая лень, я делаю инсталлеры с помощью HaoZip - SFX.<br />Он жмет в 7zip - очень плотно и линки делает где надо. А еще можно один и тот-же готовый инсталлер использовать до бесконечности.<br />HaoZip открывает exe - удаляю содержимое, заливаю нужные файлы и редактирую инфу в свойтвах - название, где линки делать и прочую лабуду.</p><p>FileCreateShortcut я тоже иногда использую ...</p>]]></content>
			<author>
				<name><![CDATA[Mambr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34398</uri>
			</author>
			<updated>2017-12-09T03:38:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122097#p122097</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122096#p122096" />
			<content type="html"><![CDATA[<p>Зачем? При первом запуске создаются ярлыки и все. А как вы сами запускаете свой скрипт, каждый раз лазиете в папку, где он находится?<br /></p><div class="codebox"><pre><code>If !FileExist(A_ScriptDir &quot;\My.ini&quot;)
    FileCreateShortcut, &quot;%A_AHKPath%&quot;, %A_Desktop%\MyScript.lnk, &quot;%A_ScriptDir%&quot;, &quot;%A_ScriptFullPath%&quot;,, %A_ScriptDir%\resource\My.ico</code></pre></div>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-12-09T03:27:37Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122096#p122096</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122095#p122095" />
			<content type="html"><![CDATA[<p>Но тогда придется делать инсталлер ...</p>]]></content>
			<author>
				<name><![CDATA[Mambr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34398</uri>
			</author>
			<updated>2017-12-09T03:21:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122095#p122095</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122094#p122094" />
			<content type="html"><![CDATA[<p>В подпапку, разумеется. myPicPath := A_ScriptDir &quot;\resource\pic.png&quot;. Да и вообще, для пользователя обычно создают ярлыки в меню пуск и на стол.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-12-09T03:18:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122094#p122094</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122093#p122093" />
			<content type="html"><![CDATA[<p><strong>stealzy</strong>, благодарю за инфу! Я действительно не знал это. Очень полезная штука!<br />Но вопрос еще и в том, куда засунуть доп. файлы, чтобы не было &quot;большой кучи всего&quot;.<br />И что б по-быстрому все было ... Ведь как известно - лень - двигатель прогресса! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Mambr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34398</uri>
			</author>
			<updated>2017-12-09T03:12:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122093#p122093</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122084#p122084" />
			<content type="html"><![CDATA[<p><strong>Mambr</strong>, вы как и большинство не в курсе простого способа распространения:<br />переименовываем интерпретатор AutoHotkey.exe по имени вашего скрипта и засовываем в одну с ним папку. При запуске ехе будет автоматически запускаться одноименный ahk.</p>]]></content>
			<author>
				<name><![CDATA[stealzy]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=31937</uri>
			</author>
			<updated>2017-12-08T22:32:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122084#p122084</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122082#p122082" />
			<content type="html"><![CDATA[<p><strong>serzh82saratov</strong>, не понял. Немного подробнее, если можно ...</p>]]></content>
			<author>
				<name><![CDATA[Mambr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34398</uri>
			</author>
			<updated>2017-12-08T20:55:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122082#p122082</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122081#p122081" />
			<content type="html"><![CDATA[<p>Создайте в папке некомпилированного скрипта с #Include *i , скрипт для создания Include, в нём перечень папок, он их обработает, создаст Include с кучей FileInstall, запустит компилятор, удалит Include.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2017-12-08T20:20:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122081#p122081</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Пакетный FileInstall]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=122080#p122080" />
			<content type="html"><![CDATA[<p>Иногда даю скрипты своему другу, а AHK у него не установлен, потому приходится компилить, да и чайник он в компах.<br />Он не понимает, что такое скрипт и как его съесть. Для него exe - это понятная штука - клацнул мышой и все заработало! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> <br />Для создания установщиков я использую Advanced installer. Он мне больше нравиться.<br />Просто иногда не хочется возиться с созданием инсталллеров, а куча дополнительных файлов тоже вроде как не комильфо.<br />Использовать для распаковки &quot;чужеродный&quot; скрипт тоже не хочется ...</p><p>Я тут набросок сделал одной схемы, пока еще не опробовал:</p><div class="codebox"><pre><code>
SrcArch := A_ScriptDir &quot;\SrcArch.zip&quot;
SrcDir := A_ScriptDir &quot;\&quot; ; извлечечь в данную директорию
InsDir := A_ScriptDir &quot;\SrcDir&quot; ; директория с доп. файлами

If !FileExist(InsDir) {
	FileInstall SrcArch.zip, % SrcArch, 1
	UnZip(SrcArch, SrcDir)
	}
Return

UnZip(SrcArch, SrcDir) {
	psh := ComObjCreate(&quot;Shell.Application&quot;)
	psh.Namespace(SrcDir).CopyHere(psh.Namespace(SrcArch).items, 4|16)
}
</code></pre></div><p>как-то так ... Нужно, чтобы zip&#039;ированный файл тоже не валялся рядом, добавить еще FileDelete *.zip после распаковки.<br />Возможно надо еще допиливать, т.к. это просто схема.</p><p>Хотел узнать, может есть более &quot;элегантные&quot; решения ...</p>]]></content>
			<author>
				<name><![CDATA[Mambr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=34398</uri>
			</author>
			<updated>2017-12-08T19:38:17Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=122080#p122080</id>
		</entry>
</feed>
