programing

콘솔 창을 방해하지 않고 C #에서 프로세스 시작

nasanasas 2021. 1. 11. 08:20
반응형

콘솔 창을 방해하지 않고 C #에서 프로세스 시작


프로세스를 시작하는 방법을 알아 냈습니다. 그러나 내 문제는 이제 콘솔 창 (이 경우 7z)이 내 시야를 차단하고 내 문장을 방해하는 포커스를 제거하거나 몇 초마다 수행하고 있다는 것입니다. 매우 성가신 일이 발생하지 않도록 어떻게 방지합니까? CreateNoWindow가 그것을 해결한다고 생각했지만 그렇지 않았습니다.

참고 : 때때로 콘솔에 사용자 입력이 필요합니다 (파일 교체 여부). 그래서 그것을 완전히 숨기는 것은 문제가 될 수 있습니다.

이것은 내 현재 코드입니다.

void doSomething(...)
{
    myProcess.StartInfo.FileName = ...;
    myProcess.StartInfo.Arguments = ...;
    myProcess.StartInfo.CreateNoWindow = true;
    myProcess.Start();
    myProcess.WaitForExit();
}

내가 올바르게 기억하면 이것은 나를 위해 일했습니다.

Process process = new Process();

// Stop the process from opening a new window
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;

// Setup executable and parameters
process.StartInfo.FileName = @"c:\test.exe"
process.StartInfo.Arguments = "--test";

// Go
process.Start();

다른 프로세스를 시작하기 위해 C # 콘솔 응용 프로그램 내에서 이것을 사용하고 있으며 응용 프로그램이 별도의 창에서 시작하는 것을 중지하고 모든 것을 동일한 창에 유지합니다.


@galets 귀하의 제안에 따르면 창은 여전히 ​​생성되며 최소화되기 시작합니다. 이것은 acidzombie24가 원하는 것을 실제로 수행하는 데 더 효과적입니다.

myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

이 시도:

myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;

다시 확인해야하지만을 설정해야한다고 생각합니다 UseShellExecute = false. 또한 표준 출력 / 오류 스트림을 캡처 할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/739101/launching-process-in-c-sharp-without-distracting-console-window

반응형