Danya98
Файл scale.au3
Файл buttons.au3
Файл fonts.au3 и buttons.au3
Добавлено:
Danya98
Посмотри вариант от LarryDalooza - получение шрифтов.
А вот мой вариант с получением из реестра напрямую.
Думаю если извлечь получилось, то и вставить не трудно. Ведь у тебя просто импортируется твой конфиг без настройки, а ведь можно выбрать шрифт и преобразовать бинарную строку для реестра.
Добавлено:
Если захочешь сделать экспорт реестра в качестве бэкапа, перед тем как вносить изменения, то есть _RegExport из _RegFunc.au3 от wraithdu. Там же и мой вариант с разницей что формирует данные в переменную и можно соединять данные из разных разделов, перед тем как сохранить.
Файл scale.au3
Код:
; Оригинал
If @OSVersion = "WIN_XPe" Or @OSVersion = "WIN_XP" Or @OSVersion = "WIN_VISTA" Then
$successful = RegWrite("HKLM\SYSTEM\ControlSet001\Hardware Profiles\0001\Software\Fonts", "LogPixels", "REG_DWORD", $esidpi)
ElseIf @OSVersion = "WIN_VISTA" Then ; ошибка, это никогда не сработает, потому что есть в верхнем условии
$successful = RegWrite("HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Fonts", "LogPixels", "REG_DWORD", $esidpi)
Else
$successful = RegWrite("HKCU\Control Panel\Desktop", "LogPixels", "REG_DWORD", $esidpi)
EndIf
; Улучшенное, так читабельней
Switch @OSVersion
Case "WIN_XPe", "WIN_XP", "WIN_VISTA"
$successful = RegWrite("HKLM\SYSTEM\ControlSet001\Hardware Profiles\0001\Software\Fonts", "LogPixels", "REG_DWORD", $esidpi)
Case "WIN_VISTA" ; ошибка, это никогда не сработает, потому что есть в верхнем условии
$successful = RegWrite("HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\Fonts", "LogPixels", "REG_DWORD", $esidpi)
Case Else
$successful = RegWrite("HKCU\Control Panel\Desktop", "LogPixels", "REG_DWORD", $esidpi)
EndSwitch
Файл buttons.au3
Код:
Func restoreDefault()
SetError(0) ; @error в начале функции равен 0 и нет смысла его обнулять
Файл fonts.au3 и buttons.au3
Код:
; Оригинал
RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "BorderWidth", "REG_SZ", "-15")
RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "CaptionFont", "REG_BINARY", "0x000000")
; и далее 369 таких же строк
; Улучшенное, так компактней и сразу видно что путь один без вычитывания всех путей
$s = "HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics" ; Ну или так $sMetrics
RegWrite($s, "BorderWidth", "REG_SZ", "-15")
RegWrite($s, "CaptionFont", "REG_BINARY", "0x000000")
Добавлено:
Сообщение автоматически объединено:
Danya98
Посмотри вариант от LarryDalooza - получение шрифтов.
А вот мой вариант с получением из реестра напрямую.
Код:
Local $sRes, $bMtr
Local $aRegFont[7] = [6, 'CaptionFont', 'IconFont', 'MenuFont', 'MessageFont', 'SmCaptionFont', 'StatusFont']
For $i = 1 To 5
$bMtr = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", $aRegFont[$i])
$sRes &= @CRLF & StringFormat("%-13s", $aRegFont[$i]) & @TAB & _Get_FontName($bMtr)
$sRes &= @TAB & _Get_FontSize($bMtr)
Next
MsgBox(0, 'Сообщение', $sRes)
Func _Get_FontName($bMtr)
Local $sStr, $iPos
$bMtr = BinaryMid ($bMtr, 28, 60)
$sStr = BinaryToString ($bMtr, 3)
$iPos = StringInStr($sStr, Chr(0))
Return StringLeft($sStr, $iPos - 1)
EndFunc
Func _Get_FontSize($bMtr)
$bMtr = BinaryMid ($bMtr, 1, 1)
Local $sStr = String($bMtr)
Return Abs(Number($sStr) - 256)
EndFunc
Добавлено:
Сообщение автоматически объединено:
Если захочешь сделать экспорт реестра в качестве бэкапа, перед тем как вносить изменения, то есть _RegExport из _RegFunc.au3 от wraithdu. Там же и мой вариант с разницей что формирует данные в переменную и можно соединять данные из разных разделов, перед тем как сохранить.