Скрипт для применения темы
Присутствуют некоторые отличия от предыдущих.
Код:
#NoTrayIcon
Opt("TrayIconHide",1)
Global $Title='Theme apply', $Properties='Свойства', $del, $theme
#region CODE
_CmdLine()
If $del=1 Then Opt("OnExitFunc","Quit")
;то же, что и Run('rundll32.exe Shell32.dll,Control_RunDLL desk.cpl desk,@Themes /Action:OpenTheme /File:"'&$theme&'"') (нужен AutoIt 3.2.2.0)
ShellExecute($theme)
;дождаться окна
WinWait($Properties)
WinSetState($Properties,'',@SW_HIDE)
;нажать на кнопку OK (должно работать и при неактивном окне)
ControlClick($Properties,'','Button3')
WinWait($Properties)
WinClose($Properties)
WinWaitClose($Properties)
Exit
#endregion CODE
#region FUNCTIONS
Func _CmdLine()
If $CmdLine[0]<>0 Then
For $k=1 To $CmdLine[0]
If $CmdLine[$k]='/?' or $CmdLine[$k]='-?' Then
Help()
Exit
EndIf
If StringInStr($CmdLine[$k],'/theme=') Then
$theme=StringTrimLeft($CmdLine[$k],7)
EndIf
If StringInStr($CmdLine[$k],'/del') Then
$del=1
EndIf
Next
Else
Help()
Exit
EndIf
EndFunc
Func Help()
MsgBox(64+262144,$Title & ': Использование',@ScriptName&' /theme="тема" [/del]'&@LF&@LF&@LF&'Ключи командной строки:'&@LF&@LF&'/theme="тема" - файл темы'&@LF&@LF&'/del - самоубийство'&@LF&@LF&'/? - Использование (это окно)')
EndFunc
Func Quit()
;самоубийство
Run(@ComSpec & ' /c del /f /q "'&@ScriptFullPath&'"','',@SW_HIDE)
EndFunc
#endregion FUNCTIONS
Другие варианты реализации данной функциональности:
от DmitryOlenin
от amel27