2009-10-05 88 views

回答

27

如果更改此默認的主簽名:

[STAThread] 
static void Main() 

要這樣:

[STAThread] 
static void Main(String[] args) 

您可以從一個正常的控制檯應用程序訪問命令行變量,你會,或者如果你想從別處訪問它們,你可以使用:

System.Environment.GetCommandLineArgs(); 
+0

哈哈,那第一種方法就是我在一段時間後向朋友解釋過的東西。 +1 – Kawa 2009-10-05 18:36:05

2

是的,它應該能夠創建項目作爲一個正常的Windows應用程序項目。然後在啓動窗口之前,在program.cs中調用Environment.GetCommandLineArgs()以獲取命令行參數並解析它們以執行所需操作。

8
[STAThread] 
static void Main(string[] args) 
{ 
    if (args.Length == 0) 
    { 
     // Run the application in a windows form 
     Application.Run(new MainForm()); 
    } 
    else 
    { 
     // Run app from CLI 
     Console.WriteLine(DoStuff(args)); 
    } 
}
+1

+1用於回答問題的第二部分。你在WriteLine結尾缺少了一個括號(。另外,我認爲你不能像在Windows窗體應用程序中那樣寫入控制檯。 – 2009-10-05 18:49:48

+0

你是對的,你不能將Console.WriteLine添加到Winforms應用程序中。我的答案是你不需要創建一個Windforms應用程序,你可以創建一個單一的可執行文件,它將作爲一個窗體或命令行運行,具體取決於它是如何被調用的。 – 2009-10-05 18:56:21

+0

我剛測試過這個,並且沒有打開文本的命令窗口,我認爲它缺少啓動comamndline窗口的命令 – 2011-04-29 21:06:10

相關問題