我正在使用以下代码运行msiexec.exe。
Process setupProc = new Process();
setupProc.StartInfo.UseShellExecute = true;
setupProc.StartInfo.CreateNoWindow = true;
setupProc.StartInfo.FileName = "msiexec.exe";
setupProc.StartInfo.Arguments = String.Format("/i \"{0}\" /qn {1}",
sSetupFilePath, installerProperties);
setupProc.StartInfo.Verb = "runas";
setupProc.Start();
我想在UAC中更改程序名称,这是否可以更改程序名称。
程序名称为“C:\ Windows \ SysWOW64 \ msiexec.exe,带有我提供的参数以便运行。
我只是想摆脱来自the msiexec.exe的争论。
我做了很多但没有得到可能的解决方案,我认为这是不可能的。
答案 0 :(得分:0)
你应该解释一下你的实际目标是什么。例如,如果您希望从独立进程启动MSI安装,则为该进程提供一个提升清单,以便它将请求提升(您的程序名称)并运行提升,然后使用您的代码的CreateProcess版本,UseShellExecute = false 。
或者,如果您的代码已经提升,则只需设置UseShellExecute = false。
在这两种情况下,msiexec都会运行提升而不显示提升请求,因为您在CreateProcess模式下将其关闭。
顺便说一句,如果你从MSI安装的自定义操作中运行它,它很可能会失败 - 这根本就不推荐。