Process.start() 打开文件时权限被拒绝 (C#)
Process.start() permission denied when opening file (C#)
我知道有一些关于类似案例的帖子,但那些不是我的,我会解释。
我正在尝试启动一个应用程序,该应用程序在启动时要求获得管理员权限,而我的应用程序也具有管理员权限。当我使用指定的按钮启动它时,出现如下图所示的错误。
我使用的代码是:
private void startESEA_Click(object sender, EventArgs e)
{
// Inicio ESEA Cliente
Process ESEA = new Process();
ESEA.StartInfo.FileName = dESEAClient + "\eseaclient.exe";
ESEA.Start();
}
我进入 Visual Studio 调试模式时出错
假设您没有访问该文件的权限,您可以强制您的应用 运行 具有管理权限。
只需将 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();
如果none以上工作,尝试设置FileAttribute
:
File.SetAttributes(filepath, FileAttributes.Normal);
我知道有一些关于类似案例的帖子,但那些不是我的,我会解释。
我正在尝试启动一个应用程序,该应用程序在启动时要求获得管理员权限,而我的应用程序也具有管理员权限。当我使用指定的按钮启动它时,出现如下图所示的错误。
我使用的代码是:
private void startESEA_Click(object sender, EventArgs e)
{
// Inicio ESEA Cliente
Process ESEA = new Process();
ESEA.StartInfo.FileName = dESEAClient + "\eseaclient.exe";
ESEA.Start();
}
我进入 Visual Studio 调试模式时出错
假设您没有访问该文件的权限,您可以强制您的应用 运行 具有管理权限。
只需将 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();
如果none以上工作,尝试设置FileAttribute
:
File.SetAttributes(filepath, FileAttributes.Normal);