我想为我的安装程序创建一个自定义操作,以检查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

谢谢,

凯文

最佳答案

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

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

过去,我曾经在VBScript上经历过一些非常糟糕的经历,以至于在我们的测试实验室中,他们的表现是100%可以,但对客户来说却有10%的时间失败了。这真的不值得。

关于windows-installer - MSI MessageBox自定义操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2359727/

10-10 16:10