通过 C# 更改 Outlook 个人信纸

Change Outlook Personal Stationery via c#

我刚刚开始学习如何使用 Visual Studio 为 Outlook 编写加载项。我很难找到资源来阅读 VSTO。 Outlook个人信纸下“新邮件信息”和“回复或转发邮件”的默认字体不能修改怎么办?


修改了我的 post 以包含解决方案:

我正在使用此 link (https://pcloadletter.co.uk/2010/05/19/outlook-default-font-and-signature/) 中的代码并转换为 C#。对于那些试图做同样事情的人,这是我的做法。

private void SetFont()
{
    RegistryKey key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Office.0\Common\MailSettings", true);

    // set the font in Outlook and then export it from the registry. Use that value for our code.
    string ComposeFontSimple = @"3c,00,00,00,1f,00,00,f8,00,00,00,00,c8,00,00,00,00,00,
                        00,00,ff,ff,00,dd,00,22,41,72,69,61,6c,00,00,00,00,00,00,00,00,00,00,00,00,
                        00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00";
    byte[] arrComposeFontSimpleBin = ArrayHexToDec(ComposeFontSimple.Split(','));
    key.SetValue("ComposeFontSimple", arrComposeFontSimpleBin, RegistryValueKind.Binary);
}

public static byte[] ArrayHexToDec(string[] arrHex)
{
    byte[] arrDec = new byte[arrHex.GetUpperBound(0)];

    for (int i = 0; i < arrHex.GetUpperBound(0); i++)
    {
        if (arrHex[i] == "00")
        {
            arrDec[i] = 0;
        }
        else
        {
            arrDec[i] = byte.Parse(arrHex[i], System.Globalization.NumberStyles.HexNumber);
        }
    
    }           
    
    return arrDec;
    
}

Outlook 将其设置保存在 windows 注册表中。尝试使用 Process Monitor 来跟踪 Outlook 保存其设置的确切位置。

如果我们谈到在运行时更改 Outlook 邮件项目,可以使用三种不同的方式修改邮件正文:

  1. Body.
  2. HTMLBody.
  3. Word 编辑器。 Inspector WordEditor 属性 class returns 表示邮件正文的 Word 文档实例。

有关详细信息,请参阅 Chapter 17: Working with Item Bodies

设置存储在 HKCU\Software\Microsoft\Office\%s.0\Common\MailSetting 秒。

您想要的值是 ReplyFontSimple - 字体大小从偏移量 12 开始,名称从偏移量 0x1A 开始(0x0 终止字符串)。