Разное - [решено] Применение темы через BAT\CMD

Аватара пользователя
Pozia

Разное - [решено] Применение темы через BAT\CMD

Сообщение Pozia »

Есть такой вот скрипт, подсказанный Smarty (
источник
), который должен применять тему:



Код:

Код: Выделить всё

rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:%SystemRoot%\Resources\themes\Aero.theme
taskkill /im explorer.exe /F 
start explorer.exe

но он у меня не работает. Выскакивает сообщение "Невозможно применить эту тему к рабочему столу. Попробуйте выбрать другую тему". Что может быть не так???
Аватара пользователя
Smarty

Re: Разное - [решено] Применение темы через BAT\CMD

Сообщение Smarty »

Pozia, сомнительно, что это относится к оформлению системы, но всё же...

Мы с автором данной информации разговаривали по этому поводу, но, видимо, он забыл исправить источник.



Дело в том, что команда



Код:

Код: Выделить всё

taskkill /im explorer.exe /F

не дает времени для применения темы, значит надо "прикрутить" паузу



Код:

Код: Выделить всё

ping -n 10 127.0.0.1 > NUL

где 10 - время паузы в секундах.

И ещё...

Путь к файлу темы лучше указать в кавычках (из-за возможных пробелов в пути).



Вот рабочий скрипт:



Код:

Код: Выделить всё

rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:"%SystemRoot%\Resources\themes\Aero.theme"
ping -n 10 127.0.0.1 > NUL
taskkill /im explorer.exe /F
start explorer.exe
здесь должна быть пустая строка
Аватара пользователя
Pozia

Re: Разное - [решено] Применение темы через BAT\CMD

Сообщение Pozia »

Smarty, по указанной мною ссылке предложили автоит скрипт применения темы без перезагрузки эксплорера. Очень удобно
Аватара пользователя
Bodya.N

Re: Разное - [решено] Применение темы через BAT\CMD

Сообщение Bodya.N »

Pozia, отлично!



Теперь делаем так.

Выкладываю утилиту для компиляции скрипта *.au3 в файл *.exe.

В папке с утилитой лежит файл Theme Apply.au3 с содержанием из поста
CMD/BAT - [решено] Помогите грамотно записать батник применение темы в Seven
:



Код:

Код: Выделить всё

#NoTrayIcon
$theme = "Aero"
$title = "Персонализация"
If FileExists(@WindowsDir & "\Resources\Themes\" & $theme & ".theme") Then
	ShellExecute(@WindowsDir & "\Resources\Themes\" & $theme & ".theme")
	WinWait($title, "", 10)
	If WinExists($title) Then ControlClick($title, "", 1)
	 Sleep(5000)
	WinClose($title)
Else
	MsgBox(16, 'Ошибка применения Темы', 'Тема "' & $theme & '" не обнаружена! ')
EndIf

Чтобы модифицировать для применения конкретной темы, откройте скрипт в Блокноте

и измените в первой строке Aero (выделено синим) на название нужной темы и сохраните.

Затем запустите утилиту, укажите этот скрипт и скомпилируйте исполняемый файл.
Аватара пользователя
Bodya.N

Re: Разное - [решено] Применение темы через BAT\CMD

Сообщение Bodya.N »

Ребят на мой взгляд вот так было бы гораздо удобнее:



Код:

Код: Выделить всё

#NoTrayIcon
$theme = $CMDLINE[1]
$title = "Персонализация"
If FileExists(@WindowsDir & "\Resources\Themes\" & $theme & ".theme") Then
	ShellExecute(@WindowsDir & "\Resources\Themes\" & $theme & ".theme")
	WinWait($title, "", 10)
	If WinExists($title) Then ControlClick($title, "", 1)
	 Sleep(5000)  
	WinClose($title)
Else
	MsgBox(16, 'Ошибка применения Темы', 'Тема "' & $theme & '" не обнаружена! ')
EndIf

Теперь скомпилированный екзешник запускаем из командной строки с параметром "Название темы".Например



Код:

Код: Выделить всё

"Theme Apply.exe" "Aero"

По сути этот скрипт ничто иное как SetTheme.exe из "ResPatch",только теперь окно "Персонализации" закрывается.
Аватара пользователя
Chekis9100a

Re: Разное - [решено] Применение темы через BAT\CMD

Сообщение Chekis9100a »

Тогда этот вариант.



Во вложении скомпилированный Theme_Apply.exe и пример скрипта Theme_Apply.cmd:



Код:

Код: Выделить всё

@echo off
"%~dp0Theme_Apply.exe" "Aero"
пустая строка
Вложения
Theme Apply New.7z
(303.97 КБ) 0 скачиваний
Theme Apply New.7z
(303.97 КБ) 0 скачиваний
Аватара пользователя
Chekis9100a

Re: Разное - [решено] Применение темы через BAT\CMD

Сообщение Chekis9100a »

Господа, перечитал и попробовал все варианты, но не желает тема применятся.

Окно тоже не закрывается. А этот вариант мне очень нужен.

Подскажите в чем проблема...

PS: Только у меня XP

Все разобрался...

$theme = "*****"

$title = "Свойства: Экран"

If FileExists (@WindowsDir & "\Resources\Themes\" & $theme & ".theme") Then

ShellExecute (@WindowsDir & "\Resources\Themes\" & $theme & ".theme")

WinWait ($title,"",10)

If WinExists ($title) Then ControlClick ($title,"",1)

Else

MsgBox (16,'Ошибка применения Темы','Тема "' & $theme & '" не обнаружена! ')

EndIf

Теперь заработало!!! Изображение Всем спасибо.
Аватара пользователя
Angelofdeath

Re: Разное - [решено] Применение темы через BAT\CMD

Сообщение Angelofdeath »

У меня ошибка при запуске скрипта:



«
autoitscreen
» на
Яндекс.Фотках


Я думаю проблема в указании имени файла или пути. Подскажите, что я делаю не правильно?

Пример скрипта:

#NoTrayIcon

$theme = "Sexy girl.theme"

$title = "Персонализация"

If FileExists(@WindowsDir & "\Resources\Themes\" &theme & ".Sexy girl.theme") Then

ShellExecute(@WindowsDir & "\Resources\Themes\" &theme & ".Sexy girl.theme")

WinWait($title, "", 10)

If WinExists($title) Then ControlClick($title, "", 1)

Sleep(5000)

WinClose($title)

Else

MsgBox(16, 'Ошибка применения Темы', 'Тема "' & $theme & '" не обнаружена! ')

EndIf
Ответить

Вернуться в «Оформление Windows 11/ 10 / 8 / 7 / Vista»