【问题标题】:How to change Program Name is UAC?如何更改程序名称为 UAC?
【发布时间】:2015-12-09 07:53:23
【问题描述】:

我正在使用以下代码运行 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,带有我提供的运行参数。

我只是想摆脱来自 msiexec.exe 的参数。

我做了很多 rnd 但找不到可能的解决方案,我认为这是不可能的。

【问题讨论】:

  • 不,因为您确实在运行msiexec.exe。 (恶意软件会利用这​​种功能来诱骗用户运行不安全的应用程序。)

标签: c# .net winforms windows-installer uac


【解决方案1】:

您应该说明您的实际目标是什么。例如,如果您希望从独立进程启动 MSI 安装,则为该进程提供提升清单,以便它请求提升(您的程序名称)并运行提升,然后使用代码的 CreateProcess 版本,UseShellExecute=false .

或者,如果您的代码已经在提升运行,只需设置 UseShellExecute=false。

在这两种情况下 msiexec 都将运行提升而不显示提升请求,因为您在 CreateProcess 模式下将其关闭。

顺便说一句,如果您从 MSI 安装的自定义操作中运行它,它很有可能会失败 - 这真的不推荐。

【讨论】:

    猜你喜欢
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2012-01-14
    • 2011-07-23
    • 2010-09-19
    相关资源
    最近更新 更多