.net 在C#控制台应用程序中隐藏控制台窗口[重复]

ecr0jaav  于 2023-08-08  发布在  .NET
关注(0)|答案(7)|浏览(310)

此问题在此处已有答案

How to run a .NET console application in the background(8个答案)
18天前关门了。
问题是,我真的不希望出现控制台窗口,但解决方案应该正在运行。我的观点是,我想让应用程序在后台运行,没有任何窗口出现。
我怎么能这么做呢?

vawmfj5a

vawmfj5a1#

将输出类型从 Console Application 更改为 Windows Application。这可以在Visual Studio中的 * 项目->属性->应用程序 * 下完成:
x1c 0d1x的数据

g6ll5ycj

g6ll5ycj2#

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

vngu2lb8

vngu2lb83#

最后可以使用new ManualResetEvent(false).WaitOne()来代替Console.Readline/key。这对我来说很好。

vohkndzv

vohkndzv4#

您可以使用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

字符串
这仍然 Flink 的屏幕,但工程足够好
用途是

using System.Runtime.InteropServices;
using System.Diagnostics;


注意,我还是新的csharp和不完美,所以随时评论和更正!

mum43rcc

mum43rcc5#

或许你想试试creating a Windows Service application。它将在后台运行,没有任何UI。

3lxsmp7m

3lxsmp7m6#

将输出类型由 * 控制台应用程序 * 更改为 *Windows应用程序 *,
而不是Console.Readline/key,你可以在最后使用new ManualResetEvent(false).WaitOne()来保持应用程序的运行。

zaqlnxep

zaqlnxep7#

在没有控制台窗口的情况下编译应用程序

csc.exe /target:winexe *.cs

字符串

相关问题