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