2012-01-11 20 views
5

Mam aplikacji, które chcę uruchomić tak:Uruchom aplikację jako aplikację konsoli z args minęła, inaczej działać jako nagrodę Form app

  • jeśli args wysłany - Chcę, żeby zachowywać się jak aplikacji konsoli

  • jeśli argumenty nie została wysłana - chcę go uruchomić w Windows Forms Application

kiedy ustawić typ wyjścia do konsoli i nie wykryto podczas args mam umożliwiając style wizualne i runni ng. Działa wspaniale, z wyjątkiem tego, że okno konsoli otwiera się/zamyka szybko i to naprawdę przeszkadza. Czy istnieje sposób, aby nie pojawiać się okno konsoli? Szukam sposobu, aby nie tworzyć go w ogóle.

+1

Zrobiłbym to na odwrót, sprawię, że będzie to aplikacja WinForm, ponieważ dostaniesz się do kodu, zanim cokolwiek zostanie utworzone (w twojej funkcji 'main' w' program.cs'). –

+0

http://www.rootsilver.com/2007/08/how-to-create-a-consolewindow –

+0

Czy możesz podzielić na trzy pliki wykonywalne? Jedna dla aplikacji Windows, druga dla aplikacji konsolowej i druga dla bootowania jednego z dwóch? Oczywiście musisz utworzyć bibliotekę klas dla swojego silnika. –

Odpowiedz

4

Zrobiłbym to na odwrót, aby była aplikacją WinForms, ponieważ dostajesz kod, zanim cokolwiek zostanie utworzone (w twojej głównej funkcji w program.cs).

Zobacz ten link: http://www.rootsilver.com/2007/08/how-to-create-a-consolewindow

+0

Wygląda na to, że powyższy link jest uszkodzony. Czy udostępniasz treści w innym miejscu? –

4
  1. utworzyć aplikację Windows.Forms
  2. Dodaj funkcję zewnętrznego

    [System.Runtime.InteropServices.DllImport("kernel32.dll")] 
    private static extern bool AllocConsole(); 
    
  3. W głównej metody aplikacji:

    if (windows_app) 
    { 
        Application.EnableVisualStyles(); 
        Application.SetCompatibleTextRenderingDefault(false); 
        Application.Run(new Form1()); 
    } 
    else 
    { 
        AllocConsole(); 
        Console.WriteLine("foo"); 
    } 
    
+0

Wyzwanie polega na tym, że AllocConsole() wydaje się tworzyć nowe okno konsoli, zamiast korzystać z konsoli, z której uruchamiasz aplikację. "foo" pojawi się w nowym oknie, które natychmiast znika, gdy aplikacja wychodzi z wywołania linii poleceń. –

Powiązane problemy