我知道有一些类似案例的帖子,但那些不是我的,我会解释。
我正在尝试启动一个应用程序,该应用程序从我的应用程序启动时请求管理员权限,该应用程序也具有管理员权限。当我使用指定的按钮启动它时,我会收到一个错误,如下图所示。
我使用的代码是:
private void startESEA_Click(object sender, EventArgs e)
{
// Inicio ESEA Cliente
Process ESEA = new Process();
ESEA.StartInfo.FileName = dESEAClient + "\\eseaclient.exe";
ESEA.Start();
}
答案 0 :(得分:2)
假设您无权访问该文件,则可以强制您的应用以管理权限运行。
只需在项目中添加Application Manifest FIle
即可对<requestedExecutionLevel>
进行必要的更改。例如:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
或以管理员身份运行特定流程:
{
Process p = new Process();
p.StartInfo.FileName = filepathhere;
p.StartInfo.UseShellExecute = true;
p.StartInfo.Verb = "runas";
p.Start();
}
或者您只需执行cmd
命令:
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "runas /profile /user:usernamehere ""C:\programs\BBB.exe”"";
process.StartInfo = startInfo;
process.Start();
如果上述方法均无效,请尝试设置FileAttribute
:
File.SetAttributes(filepath, FileAttributes.Normal);