【发布时间】:2023-04-09 22:01:01
【问题描述】:
我有一个 Visual Studio Windows 应用项目。我添加了代码来下载安装程序更新文件。下载完成后的安装程序需要管理员权限才能运行。我已经添加了一个清单文件。
当用户单击 DownloadUpdate.exe 时,UAC 会提示用户提供管理员权限。所以我假设在 DownloadUpdate.exe 中创建和调用的所有进程都将以管理员身份运行。所以我使用以下代码对我下载的文件进行了设置调用:
Process p = new Process();
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo.FileName = strFile;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
【问题讨论】:
-
不,您不能假设从 DownloadUpdater.exe 运行的所有进程都以管理员模式运行。事实上,这将是一个可怕的安全漏洞。如果您运行另一个需要管理员权限的进程,则会再次提示用户。