Показать полную графическую версию : Свойства экрана — установка шрифта.
ShellExecute('control','desk.cpl,,2')
ProgressOn('','','',-1,-1,1)
For $i = 10 to 100 step 10
Sleep(50)
ProgressSet($i)
$x = WinGetHandle('#32770','Display Properties')
Next
If WinExists($x) Then
WinActivate($x)
WinMove($x,'',-404,25)
ControlFocus($x,'','ComboBox3')
ControlCommand($x,'','ComboBox3','SelectString','Tahoma')
ControlClick($x,'','Button3')
EndIf
; на всякий случай чтобы зачистить зависший rundll32.exe, можно раскоментировать
; Sleep(1000)
; $PID = ProcessExists('rundll32.exe')
; If $PID Then ProcessClose($PID)
Вот накатал для desk.cpl скриптик. Для русской системы надо изменить название элементов GUI.
Если что не так поправьте.
:beer:
semiono, кроме «Вашего» «rundll32.exe» в системе может быть ещё несколько «чужих».
И название темы я бы поменял: под «установкой шрифта» обычно понимают именно установку шрифта в систему.
Если что не так поправьте. »
Всё не так.
У меня на первоначальном диалоге нет Combo с выбором шрифтов.
И зачем в цикле получать Handle окна?
В первом сообщений нет описаний, что делает скрипт.
В первом сообщений нет описаний, что делает скрипт. »
Скрипт выбирает шрифт для установленной темы Windows XP.
Кстати, я сейчас понял что там не так! Шрифт предоставляется самой темой, а вернее стилем *.msstyles,
поэтому понятно, что в Windows Classic.theme - вообще нету никаких Arial, Lucida, Tahoma.
http://b.imagehost.org/0973/Snap2.png
Вообщем меня попросили, я наспех написал скрипт, возможно что продолжение требуется.
По кнопке "Дополонительтно", там имеются ещё переключатели, я предполагаю,
что они именно влияют на настройки включаемые в *.theme файл.
Вопрос вообще был в том, как автоматически применить установку шрифта в реестре без перезагрузки.
И зачем в цикле получать Handle окна?
Потому что я ламер :)
Однако то что написал работает железно, при конкретных свойствах.
Если кому надо можно продолжить. Мне самому это тоже интересно, похожий скрипт меня уже выручал с установкой самой темы msstyle.
как автоматически применить установку шрифта в реестре без перезагрузки. »
Не знаю на счёт перезагрузки, но кажется тут это делается:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes
Если со шрифтами может быть не всё однозначно, то у меня есть задача более конкретная.
Например, меня всегда раздражает тень под меню:
Display Properties/Appearance/Effects/> (извиняюсь за английский)
Show shadows under menu [убрать галочку]
Это тоже можно изменить в реестре
HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask
и так же безрезультатно без перезагрузки.
Так что если desk.cpl это единственный путь, то напишите скрипт чтоб хорошо работал.
Локализацию я сам изменю, по-русски пойдёт!
:)
semiono, кроме «Вашего» «rundll32.exe» в системе может быть ещё несколько «чужих». »
Если они вызваны другим процессом, то сами запустятся снова, на практике наблюдал когда драйверы устанавливаются,
то их практически нельзя остановить, всё остальное мусор. Если rundll32.exe критический то он заново откроется.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.