使用VB.NET在安装时更改现有注册表值

时间:2017-05-30 16:06:59

标签: vb.net windows installation registry installer

我觉得我为此搜索过高低,但我似乎在障碍后遇到了障碍。

我有一个用于管理Outlook电子邮件签名的相当简单的程序。为了确保我能够捕获每个电子邮件事件(新的,回复,转发),我需要更改一个注册表值,以确保电子邮件自动弹出Outlook窗口。我知道注册表路径,如果我手动更改值,一切正常。我已经编写了2个简单的可执行文件,可以在我的Windows Installer安装项目的安装阶段运行,当在Windows Installer之外独立运行时工作正常但在嵌入到Windows Installer时发现它们没有正确运行。在this SO post的帮助下,事实证明Windows Installer自定义操作是作为SYSTEM帐户运行的,而不是当前登录的用户。我实现了帖子中提到的PostBuildEvent脚本进程,现在我可以在运行安装程序时更改注册表值。

我现在遇到的问题是在卸载阶段我无法找到与自定义操作类似的内容,因为我想确保将值重置为原始值。

独立工作代码

此代码在作为独立可执行文件运行时有效,并且当使用PostBuildEvent在链接帖子中描述的条件下运行时,结果已生成但我需要在卸载阶段进行此操作而安装阶段。

    Imports IWshRuntimeLibrary

    Class Module1

    Shared Sub Main()
         Dim objShell As WshShell = New WshShell
         Dim RegLocate As String = "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Message\DisableReadingPaneCompose"
         objShell.RegWrite(RegLocate, "0", "REG_DWORD")
    End Sub

    End Class

提前致谢。

克里斯

0 个答案:

没有答案