我在.NET应用程序的部署项目中有一个自定义操作,其中包含用于输入某些参数的自定义对话框,在无效参数上,我已经显示了MessageBox.Show-但它被安装程序窗口隐藏了,我也尝试了使用Activate的Windows窗体, TopMost,Focus,bring2front等几个选项,但是默认情况下它位于Windows安装程序窗口的后面,并且由于该用户无法识别安装过程为何未完成-因为实际上它在等待用户阅读MessageBox并按OK。
我尝试使用MsiExec Process的处理程序实现IWin32Window,并显示了消息框,但仍无法正常工作,有人知道吗?
这是我的installer.cs函数定义
public override void Install(IDictionary stateSaver)
最佳答案
它只能使用IWin32Window解决,
问题是Msiexec有1个以上的进程,而我将第1个作为默认进程,但实际上我的安装程序还有其他进程ID而不是第一个,
所以我检查了该进程。MainWindowTitle Text并考虑了该进程的MainWindowHandle,
它奏效了...干杯
关于c# - Windows7 Installer优先如何在使用C#的安装过程中将其移回?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2317218/