winForm (Konsolenanwendung)

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von Ruerte.

    Denk doch mal ein wenig mit, was macht den AllocConsole? Genau das gegenteil von dem was du willst.
    Also die Methode AllocConsole stellt dir ein neues Cmd -Fenster zur verfügung. Du müßtest wenn du das Cmd -Fenster ausblenden willst logischer weise auf eine andere Methode der kerner32.dll zugreifen. Diese nennt sich GetConsoleWindow() mit dieser Methode ermittelst du das Handle der Cmd, wenn du das Handle hast benötigst du einen weiter Platform Invoke. Dieses mal muss die user32.dll eingebunden werden bzw. die Methode ShowWindow aus der user32.dll.

    Und schon kannst du mit ShowWindow(handle, 0) Das Fenster mit dem enstrechenden Handle ausblenden und mit ShowWindow(handle, 5) einblenden.

    Spoiler anzeigen

    Das ganze wird als ConsolenAnwendung Kompiliert

    C#-Quellcode

    1. static class Program
    2. {
    3. /// <summary>
    4. /// Der Haupteinstiegspunkt für die Anwendung.
    5. /// </summary>
    6. [STAThread]
    7. static void Main(string[] args)
    8. {
    9. var handle = NativeMethodes.GetConsoleWindow();
    10. if (args.Length < 1)
    11. {
    12. NativeMethodes.ShowWindow(handle, 0);
    13. Application.EnableVisualStyles();
    14. Application.SetCompatibleTextRenderingDefault(false);
    15. Application.Run(new Form1());
    16. }
    17. else
    18. {
    19. if (args[0].ToLower() == "-hc")
    20. { NativeMethodes.ShowWindow(handle, 0); }
    21. for (int i = 0; i < args.Length; i++)
    22. {
    23. Console.WriteLine("Args {0}: \t{1}", i, args[i]);
    24. }
    25. }
    26. }
    27. internal static class NativeMethodes
    28. {
    29. [DllImport("kernel32.dll")]
    30. public static extern IntPtr GetConsoleWindow();
    31. [DllImport("user32.dll")]
    32. public static extern bool ShowWindow(IntPtr hWnd, int iCmdShow);
    33. }
    34. }


    Wenn du weißt wo in meinen Projekt was ich angehangen habe. winForm (Konsolenanwendung) die inizalisirung der FORM / CMD ist bekommst nen eis...


    Eine Consolen Anwendung hat schlicht nichts zu Inizialisieren, bei einer Form: Projektmappen -Explorer => Form1.cs => Form1 => Form1().

    *Edit*
    Hab mir grad mal deine ProjektMappe angesehen, für mich sieht das aus als hättest schlicht und ergreifend eine Forms Projektmappe erstellt und als Starttyp Console eingestellt, wenn du das so machst musst du natrürlich auch für einen neuen Einstiegspunkt sorgen. Das heisst du musst selbst eine program.cs erstellen und die Main inplementieren.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Fakiz“ ()

    Hallo,

    So weit ich das hier verstehe geht es doch nur darum dass Anwendungsframework Manuell zu Starten (Sprich wen die Console schon läuft, dann kommt das ApplicationFramework um dann die Form anzuzeigen.

    Also muss du nur das Anwendungsframework erst dann laden wen die konsole ja schon bereits läuft.

    LG, J.Herbrich