我们需要在运行时将一些设置更改为HKEY_LOCAL_MACHINE.
是否可以在运行时根据需要提示uac提升,或者我是否必须启动第二个提升的流程来执行"脏工作"?
我正在为应用程序创建一个自动更新程序.应用程序由用户启动,无需管理员权限即可运行.autoupdater以管理员权限启动,并在下载新文件之前终止应用程序.
当我想在autoupdater完成后启动更新的应用程序时出现问题.如果我使用常规的System.Diagnostics.Process.Start(文件),应用程序也会以管理员权限启动,并且必须在当前用户上运行才能按预期工作.
那么,我如何使autoupdater以当前用户而不是管理员的身份启动应用程序?
我尝试过使用以下内容:
var pSI = new ProcessStartInfo() {
UseShellExecute = false,
UserName = Environment.UserName,
FileName = file
};
System.Diagnostics.Process.Start(pSI);
Run Code Online (Sandbox Code Playgroud)
但是这会引发错误"无效的用户名或密码".我已检查用户名是否正确,我知道密码可能无效,因为我没有包含它.但是,要求用户输入他/她的密码不是一个选项,因为自动启动应用程序的全部原因是为了使用户更容易.
有什么建议?