Насколько я понял, невозможно повысить привилегии в текущем процессе. Следовательно - как это было предложено here - от моего MainApp
(развертывается через ClickOnce) Я в настоящее время запускает отдельный процесс (подписанная ехе давайте назовем его 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
Происхождение файла: Жесткий диск на этом компьютере
Программа Расположение:% путь% +% аргументы%Мне нужно скрыть аргументы (есть некоторая разумная информация, не столь важная, но показывая ее так легко, что это не хорошо) и, возможно, Я также хотел бы изменить имя программы на
MainApp
, чтобы пользователь узнал имя приложения, к которому он привык.- Я хотел бы сделать основную форму в
Foo
ребенок главной формы вMainApp
так что, например, я могу легко показать основную форму вFoo
в центре своего родителя