Показать полную графическую версию : [решено] Применение темы через BAT\CMD
Есть такой вот скрипт, подсказанный Smarty (источник (http://winreview.ru/forum/viewtopic.php?f=38&t=87)), который должен применять тему:
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
но он у меня не работает. Выскакивает сообщение "Невозможно применить эту тему к рабочему столу. Попробуйте выбрать другую тему". Что может быть не так???
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
здесь должна быть пустая строка
Smarty, вот здесь (http://forum.oszone.net/post-1533145.html#post1533145) есть более элегантное решение моего вопроса.
Smarty, по указанной мною ссылке предложили автоит скрипт применения темы без перезагрузки эксплорера. Очень удобно
Pozia, отлично!
Теперь делаем так.
Выкладываю утилиту для компиляции скрипта *.au3 в файл *.exe.
В папке с утилитой лежит файл Theme Apply.au3 с содержанием из поста Bodya.N (http://forum.oszone.net/post-1534103-13.html):
#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 (выделено синим) на название нужной темы и сохраните.
Затем запустите утилиту, укажите этот скрипт и скомпилируйте исполняемый файл.
Ребят на мой взгляд вот так было бы гораздо удобнее:
#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",только теперь окно "Персонализации" закрывается.
Тогда этот вариант.
Во вложении скомпилированный Theme_Apply.exe и пример скрипта Theme_Apply.cmd:
@echo off
"%~dp0Theme_Apply.exe" "Aero"
пустая строка
Chekis9100a
16-11-2010, 03:27
Господа, перечитал и попробовал все варианты, но не желает тема применятся.
Окно тоже не закрывается. А этот вариант мне очень нужен.
Подскажите в чем проблема...
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
Теперь заработало!!! :yahoo: Всем спасибо.
Angelofdeath
21-04-2011, 14:26
У меня ошибка при запуске скрипта:
http://img-fotki.yandex.ru/get/5705/lirik-m.0/0_6b3f3_74685f6a_M.jpg (http://fotki.yandex.ru/users/lirik-m/view/439283/)
«autoitscreen (http://fotki.yandex.ru/users/lirik-m/view/439283/)» на Яндекс.Фотках (http://fotki.yandex.ru/)
Я думаю проблема в указании имени файла или пути. Подскажите, что я делаю не правильно?
Пример скрипта:
#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
Angelofdeath, наверно ошибка в точке перед именем темы (хотя в АвтоИт не силен).
Ошибка в этих строках:
If FileExists(@WindowsDir & "\Resources\Themes\" &theme & ".Sexy girl.theme") Then
ShellExecute(@WindowsDir & "\Resources\Themes\" &theme & ".Sexy girl.theme")
У вас прописана переменная
$theme = "Sexy girl.theme"
зачем вы ещё имя темы и в эти строчки прописали, да ещё с точкой перед именем?
Angelofdeath
21-04-2011, 15:17
По скольку я не совсем понимаю где и что нужно менять пробую разные варианты. Куда нужно подставить название темы?
Angelofdeath, здесь (http://forum.oszone.net/post-1663154-6.html) я вам всё уже выложил!
Откройте в Блокноте файл Theme_Apply.cmd и посмотрите где и как прописано название вашей темы.
Angelofdeath
21-04-2011, 15:43
Ошибка:
http://img-fotki.yandex.ru/get/5303/lirik-m.0/0_6b3f6_26ec994f_M.jpg (http://fotki.yandex.ru/users/lirik-m/view/439286/)
«screenautoit (http://fotki.yandex.ru/users/lirik-m/view/439286/)» на Яндекс.Фотках (http://fotki.yandex.ru/)
Angelofdeath, это вопрос к Bodya.N, автору скомпилированного скрипта.
Напишите ему в ПМ, так как вряд ли он сюда уже заглядывает...
Angelofdeath , запускать нужно "Theme_Apply.cmd" (из вложения Smarty).Именно этот файл запускает "Theme_Apply.exe" с параметрами "название Вашей темы" и редактируется (если нужно применить другую тему) в "Блокноте" (Notepad.exe).
Bodya.N, видно, тяжелый случай...
Написал же
Скачайте из вложения архив, распакуйте и запустите файл Theme_Apply.cmd. »
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.