MSI MessageBox自定义操作

时间:2010-03-01 22:54:23

标签: windows-installer action

我想为我的安装程序创建一个自定义操作,检查Outlook是否正在运行,如果是,它会提示用户在继续之前关闭Outlook。

一切都很好,除了当MessageBox出现通知用户必须关闭Outlook时,它出现在当前的MSI安装窗口后面。我想让它出现在前面,但我无法弄清楚如何做到这一点。

我做了一些研究,MSIProcessMessage函数看起来会起作用,但它是一个API函数,我无法弄清楚如何从我的代码中调用它。

这是我的代码段:

        Dim bCont As Boolean = True

        While bCont
            If Process.GetProcessesByName("OUTLOOK").Length > 0 Then
                    MsgBox("Please close Microsoft Outlook before you install the MissingLink Project Management add-in.", MsgBoxStyle.Information, "MissingLink Project Center")
            Else
                bCont = False
            End If
        End While

谢谢,

凯文

1 个答案:

答案 0 :(得分:1)

MSIProcessMessage上的示例VBScript代码可以在http://msdn.microsoft.com/en-us/library/xc8bz3y5.aspx

找到

但是你真的不应该使用VBScript编写自定义操作。如果您还没有,请阅读Why VBScript (and JScript) Custom Actions Suck

我过去曾经遇到过一些非常可怕的VBScript体验,在我们的测试实验室中他们100%可以接受,但是近10%的时间都没有让客户失败。这真的不值得。