IT TIP

.NET-WindowStyle = 숨김 대 CreateNoWindow = true?

itqueen 2020. 11. 27. 21:51
반응형

.NET-WindowStyle = 숨김 대 CreateNoWindow = true?


새 프로세스를 시작할 때

WindowStyle = hidden

아니면 그

CreateNoWindow = true

ProcessStartInfo클래스의 속성 ?


Hans가 말했듯이 WindowStyle은 프로세스에 전달되는 권장 사항이므로 응용 프로그램은이를 무시하도록 선택할 수 있습니다.

CreateNoWindow는 콘솔이 자식 프로세스에 대해 작동하는 방식을 제어하지만 단독으로 작동하지는 않습니다.

CreateNoWindow는 UseShellExecute와 함께 다음과 같이 작동합니다.

창없이 프로세스를 실행하려면 :

ProcessStartInfo info = new ProcessStartInfo(fileName, arg); 
info.CreateNoWindow = true; 
info.UseShellExecute = false;
Process processChild = Process.Start(info); 

자체 창에서 자식 프로세스를 실행하려면 (새 콘솔)

ProcessStartInfo info = new ProcessStartInfo(fileName, arg); 
info.UseShellExecute = true; // which is the default value.
Process processChild = Process.Start(info); // separate window

부모의 콘솔 창에서 자식 프로세스를 실행하려면

ProcessStartInfo info = new ProcessStartInfo(fileName, arg); 
info.UseShellExecute = false; // causes consoles to share window 
Process processChild = Process.Start(info); 

CreateNoWindow는 콘솔 모드 앱에만 적용되며 콘솔 창을 생성하지 않습니다.

WindowStyle은 기본 Windows GUI 앱에만 적용됩니다. 이러한 프로그램 WinMain () 진입 점전달되는 힌트 입니다. 네 번째 인수 인 nCmdShow는 기본 창을 표시하는 방법을 알려줍니다. 이것은 바탕 화면 바로 가기에서 "실행"설정으로 나타나는 것과 동일한 힌트입니다. "숨김"은 옵션이 아니며 제대로 설계된 Windows 프로그램이이 요청을 받아들이는 경우는 거의 없습니다. 사용자를 스누커하기 때문에 더 이상 프로그램을 활성화 할 수 없으며 작업 관리자로만 죽일 수 있습니다.


Reflector를 WindowStyle사용하면 UseShellExecute이 설정되어 있으면 사용되는 것처럼 보이고 그렇지 않으면를 사용합니다 CreateNoWindow.

MSDN의 예에서 설정 방법을 볼 수 있습니다.

// Using CreateNoWindow requires UseShellExecute to be false
myProcess.StartInfo.UseShellExecute = false;
// You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();

다른 예에서는 UseShellExecute기본값이 true 이므로 바로 아래 에 있습니다.

// UseShellExecute defaults to true, so use the WindowStyle
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.WindowStyle = ProcessWindowStyle.Minimized;

참고 URL : https://stackoverflow.com/questions/5094003/net-windowstyle-hidden-vs-createnowindow-true

반응형