【发布时间】:2012-03-02 12:28:00
【问题描述】:
据我了解,不可能在正在运行的进程中提升权限。因此 - 正如 here 建议的那样 - 从我的 MainApp(通过 ClickOnce 部署)我目前正在启动一个单独的进程(一个签名的 exe,我们称之为 Foo.exe)用于运行需要管理员权限的活动:
Process p = new Process();
p.StartInfo.FileName = "Foo.exe";
p.StartInfo.Arguments = "args...";
p.StartInfo.UseShellExecute = true;
p.StartInfo.Verb= "runas";
p.Start();
p.WaitForExit();
现在我想让这个过程对用户尽可能友好。我有两个主要担忧。
-
UAC 窗口提示用户:
程序名称:Foo
发布者:OurCompany
文件来源:此计算机上的硬盘
程序位置:%path% + %参数%我需要隐藏参数(有一些敏感信息不是那么重要,但这么容易显示它并不好)并且可能我还想将程序名称更改为
MainApp以便用户识别应用程序名称他已经习惯了。 - 我想让
Foo中的主窗体成为MainApp中主窗体的子窗体,以便例如我可以轻松地在其父窗体的中心显示Foo中的主窗体
【问题讨论】:
标签: c# windows-7 uac privileges