; при установленных параметрах текущий скрипт ничего не добавляет в реестр.
; авторегистрация и удаление регистрации используя ключи в ком-строке /a, /d
If $CmdLine[0]>0 Then
Switch $CmdLine[1]
Case '/a'
RegRead("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName)
If @Error Then
RegWrite("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"'&@ScriptFullPath&'"')
MsgBox(0, 'Сообщение', 'регистрация в автозагрузке выполнена')
Else
If MsgBox(4, 'Сообщение', 'Ключ уже существует'&@CRLF&'Перезаписать принудительно?')=6 Then
RegWrite("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"'&@ScriptFullPath&'"')
MsgBox(0, 'Сообщение', 'регистрация в автозагрузке выполнена')
EndIf
EndIf
Case '/d'
RegRead("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName)
If @Error Then
MsgBox(0, 'Сообщение', 'Ключ отсутствует'&@CRLF&'удаление не требуется')
Else
RegDelete("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName)
MsgBox(0, 'Сообщение', 'Удаление ключа выполнено')
EndIf
Case Else; Or '/?' Or '/h' Or '/help'
MsgBox(0, 'Сообщение', 'Поддерживаются ключи:'&@CRLF&'/a - регистрация скрипта в автозагрузке'&@CRLF&'/d - удаление регистрации в автозагрузке')
EndSwitch
EndIf
; авторегистрация
$auto=0
If $auto = 1 Then
RegRead("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName)
If @Error Then RegWrite("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName, "REG_SZ", '"'&@ScriptFullPath&'"')
EndIf
; автостарт путём создания ярлыка в атозагрузке
$Autostart=0
If $Autostart=1 Then
$filename=StringRegExpReplace(@ScriptName, '(^.*)\.(.*)$', '\1')
If Not FileExists(@StartupDir&'\'&$filename&'.lnk') Then FileCreateShortcut ( @ScriptFullPath, @StartupDir&'\'&$filename&'.lnk' )
EndIf
; удаление автостарта путём удаления ярлыка в атозагрузке
$DelAutostart=0
If $DelAutostart=1 Then
$filename=StringRegExpReplace(@ScriptName, '(^.*)\.(.*)$', '\1')
If FileExists(@StartupDir&'\'&$filename&'.lnk') Then FileDelete (@StartupDir&'\'&$filename&'.lnk')
EndIf
; пример с функцией, здесь жёсткое условие, либа автозагрузка, либо неавтозагрузка
Func _Autostart()
$filename=StringRegExpReplace(@ScriptName, '(^.*)\.(.*)$', '\1')
If $Autostart=1 Then
If Not FileExists(@StartupDir&'\'&$filename&'.lnk') Then FileCreateShortcut ( @ScriptFullPath, @StartupDir&'\'&$filename&'.lnk' )
Else
If FileExists(@StartupDir&'\'&$filename&'.lnk') Then FileDelete (@StartupDir&'\'&$filename&'.lnk')
EndIf
EndFunc