2012-03-23 54 views
-2

我有一個控制檯應用程序,它也可以在某些條件下打開winform.Processing(它的數據庫導出實用程序),並通過窗體或命令行完成。但窗體始終與命令提示符關聯。我的意思是,當我關閉控制檯窗體關閉以及。我的要求是,當窗體啓動時,命令提示符自己關閉而不關閉窗體。在控制檯應用程序中的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 2012-03-23 15:16:27

+0

對不起,我無法得到它。 – arjun 2012-03-23 15:19:16

回答

1

你這裏是什麼有一個GUI 不是一個應用程序。

你需要的是它的一個GUI版本,可以選擇從CLI運行,也就是說它需要是另一個exe文件,或者是具有不同命令行參數的相同exe文件,但要小心,否則它可能只是繼續啓動自身的另一個版本,直到Windows死亡。

至少我認爲這就是你要求的。

CLI參數

MYAPP.EXE --gui

--gui意願在args 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 2012-03-23 15:29:47

+0

你正在爲此構建winform或控制檯應用程序嗎?我無法理解現在窗體和控制檯是如何獨立的。 – arjun 2012-03-23 16:02:24

+0

現在都是這樣,所以我以爲你想保持這樣。儘管如此,構建其中的一個並將數據和/或邏輯層粘在一個dll中是一個好主意。給出一個選擇,我不會開始你所做的,並採取了'nix的方法,就像在單獨的用戶界面中一樣,所以一個控制檯應用程序和一個gui,給我的druthers。 – 2012-03-23 20:39:22

相關問題