Denk doch mal ein wenig mit, was macht den
Also die Methode
Und schon kannst du mit
Spoiler anzeigen
Das ganze wird als ConsolenAnwendung Kompiliert
Eine Consolen Anwendung hat schlicht nichts zu Inizialisieren, bei einer Form:
*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.
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.Das ganze wird als ConsolenAnwendung Kompiliert
C#-Quellcode
- static class Program
- {
- /// <summary>
- /// Der Haupteinstiegspunkt für die Anwendung.
- /// </summary>
- [STAThread]
- static void Main(string[] args)
- {
- var handle = NativeMethodes.GetConsoleWindow();
- if (args.Length < 1)
- {
- NativeMethodes.ShowWindow(handle, 0);
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- Application.Run(new Form1());
- }
- else
- {
- if (args[0].ToLower() == "-hc")
- { NativeMethodes.ShowWindow(handle, 0); }
- for (int i = 0; i < args.Length; i++)
- {
- Console.WriteLine("Args {0}: \t{1}", i, args[i]);
- }
- }
- }
- internal static class NativeMethodes
- {
- [DllImport("kernel32.dll")]
- public static extern IntPtr GetConsoleWindow();
- [DllImport("user32.dll")]
- public static extern bool ShowWindow(IntPtr hWnd, int iCmdShow);
- }
- }
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“ ()