Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问被拒绝(运行.bat文件)_C# - Fatal编程技术网

C# 访问被拒绝(运行.bat文件)

C# 访问被拒绝(运行.bat文件),c#,C#,这是我构建.bat文件并运行它的代码 StringBuilder Batch = new StringBuilder(); Batch.AppendLine("@echo off"); Batch.AppendLine("taskkill /IM " + Process.GetCurrentProcess().ProcessName + ".exe /F"); Batch.AppendLine("ping localhost > nul"); Batch.AppendLine("del /

这是我构建.bat文件并运行它的代码

StringBuilder Batch = new StringBuilder();
Batch.AppendLine("@echo off");
Batch.AppendLine("taskkill /IM " + Process.GetCurrentProcess().ProcessName + ".exe /F");
Batch.AppendLine("ping localhost > nul");
Batch.AppendLine("del /f " +  (char)34 + Application.ExecutablePath + (char)34);
Batch.AppendLine("ren " + (char)34 + Application.StartupPath + @"\update.exe" + (char)34 + " " + Process.GetCurrentProcess().ProcessName);
Batch.AppendLine((char)34 + Application.ExecutablePath + (char)34);
Batch.AppendLine("del %0");

File.WriteAllText(Application.StartupPath + @"\update.bat", Batch.ToString(), Encoding.Default);
        Process.Start(Application.StartupPath + @"\update.bat");

但是,我的访问被拒绝,我必须以管理员的身份运行它,我如何才能做到这一点?

这不是对您问题的回答,但我认为您并没有从最佳方向着手。相反,请看这个问题,它为您实际要做的事情提供了一个非常可靠的答案:


TL;DR如果原始安装为“所有用户”,则必须手动提升权限时会出现问题。如果安装是“按用户”进行的,那么这将简化权限问题。

是否尝试删除自己的可执行文件?难怪你被拒绝访问。@Steve这是一个自动更新软件。我下载了一个名为update.exe的文件,这是一个新更新的软件,我杀死了我当前的,将update.exe重命名为我的应用程序名,然后再次运行它。不,这不是我被拒绝访问的原因。如果应用程序在程序文件上,这就是你需要管理员权限的原因。可能的副本