Обновление шрифта по умолчанию в Outlook 2002 - PullRequest
0 голосов
/ 09 ноября 2009

Меня попросили создать VBScript, который будет устанавливать шрифт по умолчанию для пользователей в Outlook 2002. У меня есть некоторый код, который изменяет три раздела реестра и должен обновить детали шрифта. Ключи обновляются в реестре, но не влияют на Outlook, я перезапустил Outlook и перезагрузил компьютер, и шрифт остался неизменным. Код, который я использую ниже, любая помощь будет с благодарностью получена

Dim strValue
Dim strKey
Set oshell = CreateObject("WScript.Shell")

strValue = "3c,00,00,00,0f,00,00,e8,00,00,00,40,c8,00,00,00,4a,04,03,00,00,00,00,00,00,20,54,72,65,62,75,63,68,65,74,20,4d,53,00,00,00,00,00,00,00,00,00,00,f0,db,66,34,2c,eb,13,00,01,00,00,00"
strkey = "HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Common\MailSettings\ComposeFontSimple"
oshell.RegWrite strKey,strValue,"REG_BINARY"

strValue = "3c 00 00 00 0f 00 00 e8 00 00 00 00 c8 00 00 00 4a 04 03 00 00 00 ff 00 00 20 54 72 65 62 75 63 68 65 74 20 4d 53 00 00 00 00 00 00 00 00 00 00 f0 db 66 34 2c eb 13 00 01 00 00 00"
strkey = "HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Common\MailSettings\ReplyFontSimple"
oshell.RegWrite strKey,strValue,"REG_BINARY"

strValue = "3c 00 00 00 0f 00 00 e8 00 00 00 40 c8 00 00 00 4a 04 03 00 00 00 00 00 00 20 54 72 65 62 75 63 68 65 74 20 4d 53 00 00 00 00 00 00 00 00 00 00 f0 db 66 34 2c eb 13 00 01 00 00 00"
strkey = "HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Common\MailSettings\TextFontSimple"
oshell.RegWrite strKey,strValue,"REG_BINARY"

1 Ответ

0 голосов
/ 09 ноября 2009

Я нашел решение. Мне пришлось использовать другой объект и преобразовать строковые значения в шестнадцатеричные значения, чтобы записать двоичные значения в поле реестра, как показано ниже.

HKEY_CURRENT_USER = &H80000001
strComputer = "."

Set ObjRegistry = _
    GetObject("winmgmts:{impersonationLevel = impersonate}!\\" _
    & strComputer & "\root\default:StdRegProv")

strPath = "Software\Microsoft\Office\10.0\Common\MailSettings\"

Set objRegistry = _
   GetObject("Winmgmts:root\default:StdRegProv")

uBinary = Array(&H3c,&H00,&H00,&H00,&H0f,&H00,&H00,&He8,&H00,&H00,&H00,&H40,&Hc8,&H00,&H00,&H00,&H4a,&H04,&H03,&H00,&H00,&H00,&H00,&H00,&H00,&H20,&H54,&H72,&H65,&H62,&H75,&H63,&H68,&H65,&H74,&H20,&H4d,&H53,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&Hf0,&Hdb,&H66,&H34,&H2c,&Heb,&H13,&H00,&H01,&H00,&H00,&H00)

uBinaryReply = Array(&H3c,&H00,&H00,&H00,&H0f,&H00,&H00,&He8,&H00,&H00,&H00,&H00,&Hc8,&H00,&H00,&H00,&Ha0,&H02,&H0e,&H00,&H00,&H00,&Hff,&H00,&H00,&H20,&H54,&H72,&H65,&H62,&H75,&H63,&H68,&H65,&H74,&H20,&H4d,&H53,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&H00,&Hf0,&Hdb,&H66,&H34,&H2c,&Heb,&H13,&H00,&H01,&H00,&H00,&H00)

Return = objRegistry.SetBinaryValue(HKEY_CURRENT_USER, _
   strPath, _
   "ComposeFontSimple", _
   uBinary)

Return = objRegistry.SetBinaryValue(HKEY_CURRENT_USER, _
   strPath, _
   "ReplyFontSimple", _
   uBinaryReply)

Return = objRegistry.SetBinaryValue(HKEY_CURRENT_USER, _
   strPath, _
   "TextFontSimple", _
   uBinary)
...