<?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=11508&amp;type=atom" />
	<updated>2016-04-18T17:47:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=11508</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Добавление скриптов в меню автозапуска (на примере автозамен)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102717#p102717" />
			<content type="html"><![CDATA[<p>Встроенная переменная A_Startup содержит путь к папке автозагрузки.<br />Что бы открыть ее достаточно использовать команду </p><div class="codebox"><pre><code>Run, % A_Startup</code></pre></div>]]></content>
			<author>
				<name><![CDATA[mafckz]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=32877</uri>
			</author>
			<updated>2016-04-18T17:47:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102717#p102717</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Добавление скриптов в меню автозапуска (на примере автозамен)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102715#p102715" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong>, спасибо! Оказывается можно очень просто добавлять любые документы и файлы в меню автозагрузки. Для этого нужно найти папку Startup и бросить туда ярлык документа или файла. Поискав в интернете, нашел: С-ProgramData – Microsoft – Windows – Start Menu – Programs – Startup. Попытался пройти по данному пути (кстати чтобы увидеть ProgramData нужно разрешение показывать скрытые файлы) : прошел С-ProgramData – Microsoft – Windows. Все. Папки с именем Start Menu нет. Создал утилиту которая ищет папку с нужным именем . Ввел имя Startup, задал область поиска<br />выбрав в диалоговом окне ProgramData.&nbsp; MsgBox&nbsp; выдал результат: <br />C :\ProgramData\ Microsoft\Windows \Start Menu \ Programs \Startup , хотя повторяю папки Start Menu я не нашел. Дальше скрипт успешно открыл папку Startup (у меня называется Автозагрузка)<br />Вообщем русская локализация добавила путаницы-путь которым я должен был пройти: <br /> С-ProgramData – Microsoft – Windows-Главное меню-Программы-Автозагрузка.&nbsp; Утилита которая мне помогла:<br /></p><div class="codebox"><pre><code>
InputBox, Name, Введите название папки, Введите название папки
if Name=
{
MsgBox Вы не ввели имя папки!`nВыход из программы!
return
}
FileSelectFolder, find ,  ,  , Откуда начнем поиск?
Loop, %find%\*.*, 2, 1 ; Рекурсия в подпапки.
{
Dir=%A_LoopFileFullPath%
SplitPath, Dir, File
if File=%Name%
break
}
MsgBox %Dir%
Run, &quot;%Dir%&quot;
</code></pre></div><p>*Встроенная функция поиск проводника мне ничего не дала</p>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2016-04-18T17:15:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102715#p102715</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Добавление скриптов в меню автозапуска (на примере автозамен)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102709#p102709" />
			<content type="html"><![CDATA[<p>Либо в реестре прописать путь к скрипту:<br />Вот reg файл, который прописывает скрипт находящийся на C:\watchfolder.ahk в автозапуск.<br /></p><div class="codebox"><pre><code>Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
&quot;WatchFolder.ahk&quot;=&quot;\&quot;C:\\WatchFolder.ahk\&quot;&quot;</code></pre></div><p>Но только надо учесть, что при таком запуске рабочая папка скрипта не будет идентичной папке со скриптом.<br />И если в скрипте используются относительные пути вписать:<br /></p><div class="codebox"><pre><code>SetWorkingDir %A_ScriptDir%</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2016-04-18T08:47:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102709#p102709</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK:Добавление скриптов в меню автозапуска (на примере автозамен)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102705#p102705" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>sabir.yanin2014 пишет:</cite><blockquote><p>Я захотел добавить его в меню автозапуска, но так как скрипт это документ, а не исполняемый файл,&nbsp; добавить напрямую его не удалось.</p></blockquote></div><p>Просто добавьте его или ярлык в папку автозагрузки.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2016-04-17T22:26:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102705#p102705</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK:Добавление скриптов в меню автозапуска (на примере автозамен)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=102695#p102695" />
			<content type="html"><![CDATA[<p>В учебнике AHK я нашел простой эффективный скрипт для создания Автозамен:<br /></p><div class="codebox"><pre><code>
#h:: ; горячая клавиша Win+H
; Получаем текущий выделенный текст. Вместо &quot;ControlGet Selected&quot; используется
; буфер обмена, так как он есть в большинстве редакторов
; (т.е. текстовых процессоров).  Сохраняем текущее содержимое буфера обмена,
; чтобы восстановить его позднее. Хотя обрабатывается только простой текст,
; это все же лучше, чем ничего:
AutoTrim Off ; Сохраняет любой межстрочный интервал и пробел в конце текстовой строки в буфере обмена.
ClipboardOld = %ClipboardAll%
Clipboard = ; Чтобы обнаружение заработало, нужно начать с пустого значения.
Send ^c
ClipWait 1
if ErrorLevel ; Время ожидания ClipWait вышло.
	return
; Заменяем CRLF и/или LF на `n, чтобы использовать в строке автозамены опцию &quot;send-raw&quot; (R):
; Тоже самое делаем с любыми другими символами, иначе
; могут возникнуть проблемы в &quot;сыром&quot; режиме:
; Делаем эту замену вначале, чтобы избежать помех со стороны тех, которые идут далее.
StringReplace, Hotstring, Clipboard, ``, ````, All
StringReplace, Hotstring, Hotstring, `r`n, ``r, All ; В MS Word...`r работает лучше, чем `n.
StringReplace, Hotstring, Hotstring, `n, ``r, All
StringReplace, Hotstring, Hotstring, %A_Tab%, ``t, All
StringReplace, Hotstring, Hotstring, `;, ```;, All
Clipboard = %ClipboardOld% ; Восстанавливаем предыдущее содержимое буфера обмена.
; Каретка поля ввода (InputBox) устанавливается в более удобную позицию:
SetTimer, MoveCaret, 10
; Показываем поле ввода (InputBox), обеспечивая строку автозамены по умолчанию:
Text1 := &quot;Напечатайте вашу аббревиатуру в указанном месте. &quot;
Text2 := &quot;При желании вы можете отредактировать текст замены.&quot;
Text3 := &quot;`nПример:`n:R:btw`::by the way&quot;
InputBox, Hotstring, Новая автозамена, %Text1%%Text2%%Text3%,,,,,,,, :R:`::%Hotstring%
if ErrorLevel &lt;&gt; 0 ; Пользователь нажал Cancel.
	return
IfInString, Hotstring, :R`:::
{
	MsgBox Вы не напечатали аббревиатуру. Строка автозамены не добавлена.
	return
}
; Иначе, добавляем строку автозамены и перезагружаем скрипт.
; Помещаем `n в начало, в случае, если в конце файла нет пустой строки.
FileAppend, `n%Hotstring%, %A_ScriptFullPath%
Reload
; В случае успешного завершения перезагрузка закроет этот экземпляр скрипта в режиме ожидания,
; поэтому строка ниже никогда не будет исполнена.
Sleep 200
Text1 := &quot;Только что добавленная строка неверно отформатирована. &quot;
Text2 := &quot;Открыть файл для форматирования? &quot;
Text3 := &quot;Обратите внимание, что неисправные строки автозамены находятся внизу скрипта.&quot;
MsgBox, 4,, %Text1%%Text2%%Text3%
IfMsgBox, Yes, Edit
return

MoveCaret:
IfWinNotActive, Новая автозамена
	return
; Иначе, передвигаем курсор в поле ввода туда, где пользователь напечатает аббревиатуру.
Send {Home}{Right 3}
SetTimer, MoveCaret, Off
Return
</code></pre></div><p>Скрипт обновляет свой словарный запас в процессе работы и очень помогает экономить время при написании текста и скриптов. Я захотел добавить его в меню автозапуска, но так как скрипт это документ, а не исполняемый файл,&nbsp; добавить напрямую его не удалось. Пришла идея создать дополнительный скрипт для запуска основного скрипта (автозамены) , который я уже могу скомпилировать и поставить в автозапуск. Но написать единичный скрипт для выполнения этой задачи мне&nbsp; показалось мало, так как задача типовая. Хотелось создать какую то простую утилиту которая будет выдавать такие одноразовые скрипты как горячие пирожки.<br /> Схема такая: <br />запустил утилиту &gt;&gt; появилось диалоговое окно в котором мы находим основной скрипт &gt;&gt; создается скомпилированный скрипт,&nbsp; целью которого является запуск основного файла &gt;&gt; ставим этот скрипт в меню автозапуска. Все</p><p>Вот утилита:<br /></p><div class="codebox"><pre><code>
t1=--------------------Создание исполняемого файла.
t2=Выберите файл который будет запускаться -----------------
FileSelectFile, FileDir, , ,%t1%%t2% 
SplitPath, FileDir, File
FileName:=SubStr(File, 1, InStr(File, &quot;.&quot;) -1)
if FileName=
return
MsgBox исполняемый файл %FileName% будет создан на рабочем столе
NewScript=Run, &quot;%FileDir%&quot;
FileAppend, % NewScript, C:\%FileName%EXE.ahk
Run, C:\Program Files\AutoHotkey\Compiler\Ahk2Exe /in C:\%FileName%EXE.ahk /out C:\%FileName%EXE.exe
sleep 100
FileDelete, C:\%FileName%EXE.ahk
sleep 100
FileMove, C:\%FileName%EXE.exe, %A_Desktop% 
 </code></pre></div>]]></content>
			<author>
				<name><![CDATA[sabir.yanin2014]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33790</uri>
			</author>
			<updated>2016-04-17T20:15:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=102695#p102695</id>
		</entry>
</feed>
