Тема: AutoHotkey: менеджер автозагрузки скриптов
Нижеприведённый скрипт, будучи добавлен директивой #Include в любой другой скрипт, добавляет в системное меню этого другого скрипта в трее пункт "Autorun" (переключатель), позволяющий быстро поместить запущенный скрипт в автозагрузку (в папку "Автозагрузка" или в реестр в раздел HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run текущего пользователя), или убрать его из автозагрузки. Вариант автозагрузки определяется состоянием строки:
RegistryMode = Yes
Если она закомментирована, автозагрузка идёт через папку "Автозагрузка", а если нет - через реестр. Сам скрипт:
;
; AutoHotkey Version: 1.0.35.11
; Language: All
; Platform: XP
; Author: Dmitry B. Lyudmirsky <lud@skpress.ru>
; File Name: Autorun.ahk
;
; Script Function:
; Put Autorun.ahk into your script's directory.
; To provide Autorun capability
; simply insert a line
; #Include Autorun.ahk ; place Autorun item here
; anywhere in your script's tray menu declaration.
; If using Registry mode don'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%
}
Автор скрипта - Ludens.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.