2009-09-08 2 views
5

C# 응용 프로그램이 바탕 화면이나 cmd 셸에서 시작되었는지 어떻게 알 수 있습니까?C# 응용 프로그램이 바탕 화면 또는 cmd 셸에서 시작되었는지 어떻게 알 수 있습니까?

MSDN 설명서는이 부분에 약간 퍼지입니다. 아마도 누군가가 나를 여기에 도울 수 :

들으 많이!

+0

실례 요구를 들어,하지만 왜이 차이를 만들까요? 너 뭐하려고? –

+0

cmd 쉘을 통해 작은 응용 프로그램을 시작하면 출력은 쉘 창으로 이동해야합니다. 바탕 화면에서 시작하면 msgbox를 열고 결과를 표시하고 올바른 버튼을 누르면 클립 보드에 복사합니다. 특별한 것은 없습니다. – MrMarco

답변

5

이것은 작동하는 것 같다.

참고 : 실제로는 .GetCommandLineArgs()이고 args[] 매개 변수는 보통 static void Main(string[] args)에 있으며이 항목을 제거해야합니다.

- 편집

.exe 자체와 동일한 경로에서 달린다 경우에만 감지합니다. 하위 폴더 (foo\hello.exe)에서 실행하면 작동하지 않습니다. 부모 프로세스를 받고

+0

실제로 명령 줄에 전체 경로를 지정하는 경우에도 작동하지 않습니다. –

+0

예 Tal : 그건 내가 설명했다. 첫 번째 매개 변수는이를 실행하기 위해 입력하는 매개 변수입니다. –

+0

Thx. 그것은 작동합니다. 많은 thx 도움! – MrMarco

1

나는 이것을 알 수있는 방법이 아니다 확신하고 문서 "퍼지"그 이유 일 것이다. 당신이 그것을 더블 클릭하면

string[] args = System.Environment.GetCommandLineArgs(); 

if(args[0] == "you exe name"){ ...} 

는, 인수 [0] 전체 폴더를 포함

3

시도 :

  var pc = new PerformanceCounter("Process", "Creating Process Id", 
      Process.GetCurrentProcess().ProcessName); 
     var p = Process.GetProcessById((int)pc.RawValue); 

동일한 프로세스의 여러 인스턴스가있는 경우이 그래도 작동하는지 확실하지. 이러한 경우는이 방법을 사용하는 것이 더 좋을 것이다 : http://www.codeproject.com/KB/threads/ParentPID.aspx

+0

이 하나 신경 쓰이지 마 :) –

관련 문제