代码之家  ›  专栏  ›  技术社区  ›  bristows

更新Outlook 2002中的默认字体

  •  0
  • bristows  · 技术社区  · 15 年前

    我被要求创建一个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 回复  |  直到 15 年前
        1
  •  0
  •   bristows    15 年前

    我找到了解决办法。我必须使用另一个对象并将字符串值转换为十六进制值,以便将二进制值写入注册表字段,如下所示。

    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)