WFA auf console ausgeben?



  • Hallo,
    wie kann ich bei einer WFA, auf die Konsole etwas ausgeben !?
    Mein Ansatz:

    namespace a
    {
        static class Program
        {
            [System.Runtime.InteropServices.DllImport("kernel32.dll", SetLastError = false)]
            private static extern bool AttachConsole(int dwProcessId);
    
            const int ATTACH_PARENT_PROCESS = -1;
    
            [System.Runtime.InteropServices.DllImport("kernel32.dll", SetLastError = false)]
            private static extern bool FreeConsole();
    
            [STAThread]
            static void Main(String[] args)
            {
                if (args.Length != 0)
                {
                    if (AttachConsole(ATTACH_PARENT_PROCESS)){
                        Console.WriteLine("KEINE AUSGABE");
                    }
                    if (args[0].Contains("/?"))
                    {
                        Console.WriteLine("KEINE AUSGABE");
                    }
                }
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                try{Application.Run(new Main(args));}
                catch (System.Exception) { }
    
                FreeConsole();
            }
        }
    }
    

    jedoch erwische ich nicht die "console"



  • Weiß niemand woran es hängt 😞 ?



  • Du hast vermutlich noch keine Console erzeugt, versuchs mal mit

    AllocConsole();



  • Mach eine Konsolenanwendung - dann wird automatisch eine Konsole geöffnet, die über System.Console angesprochen werden kann (- In einer Konsolenanwendung kann man auch Fenster erstellen und anzeigen).
    Stelle eich in Eigenschaften > Anwendung > Ausgabetyp auf Konsolenanwendung

    Außerdem ist das C# und nicht C++/CLI und dann braochst du auch keine "P/Invoke"s.

    Du kannst dann nur die Konsole nicht zwischenzeitig schießen.


Anmelden zum Antworten