2009-11-09 119 views
0

我被要求創建一個vbscript,它將爲Outlook 2002中的用戶設置默認字體。我有一些代碼可以更改三個註冊表項,並且應該更新字體細節。鍵正在註冊表中更新,但對Outlook沒有任何影響,我已重新啓動Outlook並重新啓動計算機,字體保持不變。我使用的代碼如下,任何幫助將不勝感激地收到更新Outlook 2002中的默認字體

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" 

回答

0

我找到了解決方案。我不得不使用另一個對象並將字符串值轉換爲十六進制值,以便將二進制值寫入註冊表字段,如下所示。

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)