2012-03-23 2 views
-2

특정 조건에서 winform을 열 수있는 콘솔 응용 프로그램이 있습니다. 처리 도구 (데이터베이스 내보내기 유틸리티)는 양식이나 명령 줄을 통해 수행 할 수 있습니다. 그러나 양식은 항상 명령 프롬프트와 연관됩니다. 내 말은 콘솔을 닫을 때 양식이 닫히는 것을 의미합니다. 양식이 시작되면 명령 프롬프트가 닫히지 않고 양식이 닫힙니다.콘솔 응용 프로그램의 winform

[STAThread] 
    public static void Main(string[] args) 
    { 

     if(hastolaunchform) 
      { 
        Application.Run(new Form1()); 
      } 

     else 
      { 
         Console.WriteLine("started"); 
         try 
         { 
          dataclass.extract(); 
          console.writeline("finish"); 
         } 
         catch (Exception e) 
         { 

          Console.WriteLine("An error occur"); 
         } 
      } 

     } 
+1

구문 분석 오류 같은 : 질문은하지 발견했다. – JYelton

+0

죄송합니다. – arjun

답변

1

은 당신이 여기에있는 것은 GUI를 또는이되지 않은 응용 프로그램입니다.

필요한 것은 CLI에서 선택적으로 실행할 수있는 gui 버전입니다. 즉, 다른 exe이거나 다른 명령 줄 매개 변수가있는 동일한 exe 일 필요가 있습니다. 그렇지 않으면주의해야합니다. 창문이 죽을 때까지 다른 버전의 창을 계속 열어 라.

적어도 나는 이것이 당신이 요구하는 것이라고 생각합니다.

CLI 인수

MyApp.exe의 --GUI

--GUI 의지 인수에 apears

[1].

은 그래서

if (args.Contains["--GUI"]) 
{ 
    Application.Run(new Form1()); 
} 
else 
{ 
    if (hastolaunchForm) 
    { 
    // use Process.start to run another version of your app with --GUI parameter 
    // and close 
    } 
    else 
    { 
    // do console stuff. 
    } 
    } 
} 
+0

예, 꽤 많이 있습니다. 두 번째 "다른 명령 줄 매개 변수가있는 동일한 exe"를 간단한 코드로 설명하십시오. – arjun

+0

winform 또는 이에 대한 콘솔 응용 프로그램을 빌드하고 있습니까? 양식과 콘솔이 지금 어떻게 독립적인지 이해할 수 없었습니다. – arjun

+0

그것은 둘 다 지금, 나는 당신이 그것을 그렇게 유지하기를 원한다고 생각했습니다. 각각 하나를 만들고 dll에 데이터 및/또는 논리 레이어를 고집하는 것은 좋은 생각입니다. 주어진 선택을 감안할 때, 내가 한 곳에서 시작하지 않았으며 UI와는 별도로 'nix 접근법'을 취했습니다. 그래서 하나의 콘솔 앱과 하나의 GUI가 제공됩니다. –

관련 문제