<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AutoHotkey: менеджер автозагрузки скриптов]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=228</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=228&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AutoHotkey: менеджер автозагрузки скриптов».]]></description>
		<lastBuildDate>Mon, 30 Apr 2007 14:09:26 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AutoHotkey: менеджер автозагрузки скриптов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=2711#p2711</link>
			<description><![CDATA[<p>Скрипт по управлению скриптами, с графическим интерфейсом. Показывает список всех скриптов AHK в указанной папке, позволяет:<br />1. Через контекстное меню быстро открыть выбранный в списке скрипт в указанном текстовом редакторе (путь к текстовому редактору задаётся в начале этого скрипта-менеджера).<br />2. Через контекстное меню быстро поместить выбранный в списке скрипт в автозагрузку (в реестр, HKLM), убрать из автозагрузки.<br />3. Через контекстное меню или двойным щелчком быстро запустить/остановить выбранный в списке скрипт.<br /></p><div class="codebox"><pre><code>DetectHiddenWindows, On
SetTitleMatchMode, 2

;********Определяем переменные***********
RS=SOFTWARE\Microsoft\Windows\CurrentVersion\Run ;Ключ реестра отвечающий за автозагрузку 
Scrip_Path=D:\Programs\Scripts    ; Папка со скриптами
EditProg=%ProgramFiles%\Notepad++\notepad++.exe ;Программа, в которой скрипты редактируем

    Gui, Add, ListView, x16 y17 w300 h200 Grid gMyListView, Имя скрипта |Состояние | автозапуск
    Gui, Show, x131 y91 h250 w350, Управление скриптами AHK
    
    Menu, MyContext, Add, Start/Stop, RunStop
    Menu, MyContext, Add, &amp;Edit, Edit
    Menu, MyContext, Add, &amp;Autorun On/Off, AutorunOnOff
    Menu, MyContext, Add, &amp;Exit , GuiClose
    Menu, MyContext, Default, Start/Stop

    
;******************Сканируем папку на наличие файлов *.ahk**********    
    loop, %Scrip_Path%\*.ahk {    
        LV_Add(&quot;&quot;, A_LoopFileName  ) ; Добавляем файл в таблицу
        WinGetTitle, WinExist,  %A_LoopFileName%
        If not WinExist=&quot;&quot;                        ; Проверяем запущен ли он
            LV_Modify(A_Index, &quot;Col&quot; 2, &quot;run&quot; ) ; Записываем результат проверки
        n:=A_Index
        ;*************Проверка есть ли скрипт в автозагрузке*******
        Loop, HKLM , %RS%
        {
            RegRead, regPath, HKLM,  %RS%, %A_LoopRegName%
            If A_LoopFileFullPath=%regPath%
            LV_Modify(n, &quot;Col&quot; 3, &quot;autorun&quot; )
        }
        
    }
    LV_ModifyCol(1 , &quot;Auto&quot;) 
    SetTimer, RunChek, 500  ; Периодически проверяем ситуацию 
return
    
GuiContextMenu: ; Запускается в ответ на щелчок правой клавишей мыши или на нажатие клавиши Apps.
    Menu, MyContext, Show, %A_GuiX%, %A_GuiY%
return

;***************Определяем, что по двойному щелчку запуск/остановка скрипта*******
MyListView:
if A_GuiEvent = DoubleClick  
    GoSub, RunStop
return

;************запуск и остановка скрипта*******************
RunStop:
    FocusedRowNumber := LV_GetNext(0, &quot;F&quot;)
    LV_GetText(script_name, FocusedRowNumber)
    IfWinNotExist, %script_name% 
    {
        run, %Scrip_Path%\%script_name%
        LV_Modify(FocusedRowNumber, &quot;Col&quot; 2, &quot;run&quot; )
    }
    else {
        WinClose, %script_name%
        LV_Modify(FocusedRowNumber, &quot;Col&quot; 2, &quot;&quot; ) 
    }
Return

;****************Редактирование скрипта***************
Edit:
    FocusedRowNumber := LV_GetNext(0, &quot;F&quot;)
    LV_GetText(script_name, FocusedRowNumber)
    run, %EditProg% &quot;%Scrip_Path%\%script_name%&quot;
Return
    
;****************Включение скрипта в автозагрузку или удаление оттуда*****    
AutorunOnOff:
    FocusedRowNumber := LV_GetNext(0, &quot;F&quot;)
    LV_GetText(registry_state, FocusedRowNumber, 3)
    LV_GetText(script_name, FocusedRowNumber)
    If registry_state=
        {
            RegWrite, REG_SZ,  HKLM, %RS%, %script_name%, %Scrip_Path%\%script_name%
            LV_Modify(FocusedRowNumber, &quot;Col&quot; 3, &quot;autorun&quot; )
        }
        else {
            RegDelete, HKLM, %RS%, %script_name%
            LV_Modify(FocusedRowNumber, &quot;Col&quot; 3, &quot;&quot; )
        }
Return

;******************Регулярная перепроверка какие скрипты запущены*******
RunChek:
    Loop % LV_GetCount()    {
        LV_GetText(RetrievedText, A_Index)
        IfWinNotExist, %RetrievedText%
            LV_Modify(A_Index,&quot;Col&quot; 2, &quot;&quot;) 
    }
return

GuiClose:
    ExitApp
Return</code></pre></div><p>Автор скрипта - <strong>zemlak</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Mon, 30 Apr 2007 14:09:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=2711#p2711</guid>
		</item>
		<item>
			<title><![CDATA[AutoHotkey: менеджер автозагрузки скриптов]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=1202#p1202</link>
			<description><![CDATA[<p>Нижеприведённый скрипт, будучи добавлен директивой <strong>#Include</strong> в любой другой скрипт, добавляет в системное меню этого другого скрипта в трее пункт &quot;Autorun&quot; (переключатель), позволяющий быстро поместить запущенный скрипт в автозагрузку (в папку &quot;Автозагрузка&quot; или в реестр в раздел <strong>HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run</strong> текущего пользователя), или убрать его из автозагрузки. Вариант автозагрузки определяется состоянием строки: </p><div class="codebox"><pre><code>RegistryMode = Yes</code></pre></div><p>Если она закомментирована, автозагрузка идёт через папку &quot;Автозагрузка&quot;, а если нет - через реестр. Сам скрипт:<br /></p><div class="codebox"><pre><code>;
; AutoHotkey Version: 1.0.35.11
; Language:       All
; Platform:       XP
; Author:         Dmitry B. Lyudmirsky &lt;lud@skpress.ru&gt;
; File Name:      Autorun.ahk
;
; Script Function:
;     Put Autorun.ahk into your script&#039;s directory.
;     To provide Autorun capability
;     simply insert a line 
;     #Include Autorun.ahk ; place Autorun item here
;     anywhere in your script&#039;s tray menu declaration. 
;     If using Registry mode don&#039;t forget a line
;     #Include %A_ScriptDir% ; 1.0.35.11+
;     at the beginning of the script
;
RegistryMode = Yes ; comment out this line to set Startup Folder mode
AutorunMenuItemName = Autorun
if RegistryMode
    SK = Software\Microsoft\Windows\CurrentVersion\Run ; Registry SubKey name
else
{
    SF = %A_Startup% ; Startup Folder - you may choose A_StartupCommon
    LF = %SF%\%A_ScriptName%.lnk ; LinkFile
}
Menu Tray, Add, %AutorunMenuItemName%, AutorunSetup 
AutorunSetup:
    if AutorunInit
    {
        if AutorunOn
        {
            if RegistryMode
                RegDelete HKCU, %SK%, %A_ScriptName%
            else
                FileDelete %LF%
            AutorunOn := ErrorLevel
            if !AutorunOn
                Menu Tray, Uncheck, %AutorunMenuItemName%
        return
        } ; else
        if RegistryMode
            RegWrite REG_SZ, HKCU, %SK%, %A_ScriptName%, %A_ScriptFullPath%
        else
            FileCreateShortcut %A_ScriptFullPath%, %LF%, %A_ScriptDir%
        AutorunOn := !ErrorLevel
        if AutorunOn
            Menu Tray, Check, %AutorunMenuItemName%
    return
    }
AutorunInit = Yes
if RegistryMode
    RegRead SPath, HKCU, %SK%, %A_ScriptName%
else
    FileGetShortcut %LF%, SPath
AutorunOn := !ErrorLevel
if AutorunOn
{
    IfNotEqual SPath, A_ScriptFullPath
    { ; update record in case of the script file was moved
        if RegistryMode
            RegWrite, REG_SZ, HKCU, %SK%, %A_ScriptName%, %A_ScriptFullPath%
        else
            FileCreateShortcut %A_ScriptFullPath%, %LF%, %A_ScriptDir%
        AutorunOn := !ErrorLevel
    }
    if AutorunOn
        Menu Tray, Check, %AutorunMenuItemName%
}</code></pre></div><p>Автор скрипта - <strong>Ludens</strong>.</p>]]></description>
			<author><![CDATA[null@example.com (The gray Cardinal)]]></author>
			<pubDate>Sun, 26 Nov 2006 15:24:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=1202#p1202</guid>
		</item>
	</channel>
</rss>
