在C#控制台应用程序中隐藏控制台窗口

SOF*_*ser 95 .net console-application

问题是,我真的不希望控制台窗口出现......但解决方案应该正在运行.我的观点是,我想让应用程序在后台运行,没有任何窗口出现.

Dir*_*mar 174

将输出类型从控制台应用程序更改为Windows应用程序.这可以在Visual Studio中的项目 - >属性 - >应用程序下完成:

替代文字

  • 删除`Console.ReadLine`.如果您没有控制台窗口,则没有任何意义. (15认同)
  • 控制台窗口闪烁并返回.如何让应用程序在没有窗口的情况下运行? (4认同)

Sek*_*hat 22

将您的应用程序类型更改为Windows应用程序.您的代码仍将运行,但除非您创建一个,否则它将没有控制台窗口,也没有标准窗口窗口.

  • 控制台窗口闪烁并返回.如何让应用程序在没有窗口的情况下运行? (2认同)

小智 11

而不是Console.Readline/keynew ManualResetEvent(false).WaitOne()最后可以使用.这对我很有用.


Jon*_*tti 5

您可以使用 user32.dll 来实现此目的,而无需使用 vscode

    class start
    {
        [DllImport("user32.dll")]
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
        static void Main()
        {
            IntPtr h = Process.GetCurrentProcess().MainWindowHandle;
            ShowWindow(h, 0);
            // Do the rest
Run Code Online (Sandbox Code Playgroud)

这仍然会闪烁屏幕,但效果足够好

用途是

using System.Runtime.InteropServices;
using System.Diagnostics;
Run Code Online (Sandbox Code Playgroud)

请注意,我对 csharp 还很陌生,并不完美,所以请随意发表评论和更正!

  • 虽然另一个解决方案更受欢迎,但我认为这个解决方案被低估了!特别是因为我可以根据逻辑有条件地显示/隐藏控制台窗口,例如通过添加“#if DEBUG”等编译器指令 (3认同)