2009-10-05 4 views

Odpowiedz

27

Jeśli zmienić to domyślne Main Podpis:

[STAThread] 
static void Main() 

do tego:

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

można uzyskać dostęp do zmiennych wiersza polecenia tak jak z normalnej aplikacji konsoli lub jeśli chcesz uzyskać do nich dostęp z innego źródła, możesz użyć:

System.Environment.GetCommandLineArgs(); 
+0

Hah, ta pierwsza metoda jest tym, czego użyłem w wyjaśnieniu znajomemu jakiś czas temu. +1 – Kawa

2

Tak, powinien działać, aby utworzyć projekt jako normalny projekt aplikacji systemu Windows. Następnie w programie program.cs przed uruchomieniem okna, wywołaj Environment.GetCommandLineArgs(), aby uzyskać argumenty wiersza poleceń i przeanalizuj je, aby zrobić to, co chcesz.

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 za udzielenie odpowiedzi na drugą część pytania. Brakuje nawiasu na końcu WriteLine (. Ponadto, nie sądzę, aby można było napisać na konsolę tak jak w aplikacji z formularzem Windows.) –

+0

Masz rację, że nie możesz zainstalować Console.WriteLine w aplikacji WinForm. Moja odpowiedź brzmi: nie musisz tworzyć aplikacji Windforms, możesz utworzyć pojedynczy plik wykonywalny, który będzie działał jako formularz lub wiersz poleceń w zależności od sposobu wywołania. –

+0

Właśnie to przetestowałem i nie ma otwartego okna poleceń dla tekstu , Myślę, że brakuje komendy do uruchomienia okna comamndline –

Powiązane problemy