Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Свойства экрана — установка шрифта. (http://forum.oszone.net/showthread.php?t=194298)

semiono 18-12-2010 05:09 1568596

Свойства экрана — установка шрифта.
 
Код:

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:

Iska 18-12-2010 09:29 1568645

semiono, кроме «Вашего» «rundll32.exe» в системе может быть ещё несколько «чужих».

И название темы я бы поменял: под «установкой шрифта» обычно понимают именно установку шрифта в систему.

Creat0R 18-12-2010 13:44 1568778

Цитата:

Цитата semiono
Если что не так поправьте. »

Всё не так.

У меня на первоначальном диалоге нет Combo с выбором шрифтов.
И зачем в цикле получать Handle окна?

В первом сообщений нет описаний, что делает скрипт.

semiono 19-12-2010 00:09 1569240

Цитата:

Цитата Creat0R
В первом сообщений нет описаний, что делает скрипт. »

Скрипт выбирает шрифт для установленной темы Windows XP.
Кстати, я сейчас понял что там не так! Шрифт предоставляется самой темой, а вернее стилем *.msstyles,
поэтому понятно, что в Windows Classic.theme - вообще нету никаких Arial, Lucida, Tahoma.



Вообщем меня попросили, я наспех написал скрипт, возможно что продолжение требуется.
По кнопке "Дополонительтно", там имеются ещё переключатели, я предполагаю,
что они именно влияют на настройки включаемые в *.theme файл.

Вопрос вообще был в том, как автоматически применить установку шрифта в реестре без перезагрузки.

Цитата:

И зачем в цикле получать Handle окна?
Потому что я ламер :)

Однако то что написал работает железно, при конкретных свойствах.
Если кому надо можно продолжить. Мне самому это тоже интересно, похожий скрипт меня уже выручал с установкой самой темы msstyle.

Creat0R 19-12-2010 00:46 1569257

Цитата:

Цитата semiono
как автоматически применить установку шрифта в реестре без перезагрузки. »

Не знаю на счёт перезагрузки, но кажется тут это делается:
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes

semiono 19-12-2010 05:56 1569360

Если со шрифтами может быть не всё однозначно, то у меня есть задача более конкретная.
Например, меня всегда раздражает тень под меню:
Display Properties/Appearance/Effects/> (извиняюсь за английский)
Show shadows under menu [убрать галочку]
Это тоже можно изменить в реестре
HKEY_CURRENT_USER\Control Panel\Desktop\UserPreferencesMask
и так же безрезультатно без перезагрузки.
Так что если desk.cpl это единственный путь, то напишите скрипт чтоб хорошо работал.
Локализацию я сам изменю, по-русски пойдёт!
:)

Цитата:

Цитата Iska
semiono, кроме «Вашего» «rundll32.exe» в системе может быть ещё несколько «чужих». »

Если они вызваны другим процессом, то сами запустятся снова, на практике наблюдал когда драйверы устанавливаются,
то их практически нельзя остановить, всё остальное мусор. Если rundll32.exe критический то он заново откроется.


Время: 17:24.

Время: 17:24.
© OSzone.net 2001-