"이 시스템은 파일 지정을 찾을 수 없습니다"가 발생합니다. Process.Start를 (...)는 내가</p> <pre><code>cmd.exe /c taskkill.exe /f /im explorer.exe & explorer.exe </code></pre> <p>를 사용하여 정확하게 내가 원하는 무엇을하고있는 것을 발견 컴퓨터를 다시 시작하지 않고 즉시 레지스트리 변경에 대한
나는 그들이 PATH 값을 가지고 있지 않으며 SYSTEM32 폴더에 존재하지 않기 때문에 당신은 자신의 전체 경로없이cmd.exe
같은 파일을 사용할 수 없습니다 읽어 보시기 바랍니다.
const string explorer = @"C:\Windows\explorer.exe";
string taskkill = "", commandprompt = "";
var task1 = Task.Run(() =>
taskkill = Directory.GetDirectories(@"C:\Windows\WinSxS", "*microsoft-windows-taskkill_*")[0] + @"\taskkill.exe");
var task2 = Task.Run(() =>
commandprompt = Directory.GetDirectories(@"C:\Windows\WinSxS", "*microsoft-windows-commandprompt_*")[0] + @"\cmd.exe");
Task.WaitAll(task1, task2);
Process.Start(string.Format($"{commandprompt} /c {taskkill} /f /im {explorer} & {explorer}"));
그러나이 코드 조각을 실행하는 사람이 나에게이 문제를 해결하는 데 도움 수 있다면
"The system cannot find the file specified"
는 감사하겠습니다 던졌습니다!
편집 # 1 :
Process.Start(commandprompt, string.Format($"/c {taskkill} /f /im {explorer} & {explorer}"));
대답으로 코드를 변경하여이 명령 프롬프트는 두 번째 ANS 열립니다 같은 "요청이 무효"과 탐험가 그 후 말한다 창이 열립니다.
다른 문제가 있는지 모르겠지만 Process.Start를 인수로 실행하려면 주된 것이 하나 있습니다. 파일 이름과 인수의 두 매개 변수를 전달해야합니다. 따라서 귀하의 경우에는 첫 번째로 '명령 프롬프트'이고 두 번째는 나머지입니다. – Evk