C#应用程序启动时如何最小化控制台窗口

7

我有一个控制台应用程序,我想在运行应用程序时将控制台最小化(而不是永久隐藏),这可能吗? 此外,我正在使用定时器每10分钟运行任务,是否可以在每次应用程序运行时最小化控制台? 谢谢!


可能是重复的问题? .Net控制台应用程序在系统托盘中 - P. Zoltan
2
我不想把它放到系统托盘中,只想将其最小化。 - Coder123
1个回答

21
以下代码应该可以解决问题。使用Win32方法来最小化控制台窗口。我正在使用Console.ReadLine()来防止窗口立即关闭。
internal class Program
{
    [DllImport("User32.dll", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    private static extern bool ShowWindow([In] IntPtr hWnd, [In] int nCmdShow);

    private static void Main(string[] args)
    {
        IntPtr handle = Process.GetCurrentProcess().MainWindowHandle;

        ShowWindow(handle, 6);

        Console.ReadLine();
    }
}

使用了不同的方法,但是你的答案帮了我很大的忙。 - Coder123
很好,可以反馈并说明你使用了哪种方法。 - georgeok
1
不得不大声说出来 - 我无缘无故地错误地对这个答案进行了负评(直到今天看到有色的向下箭头才意识到)。我为此道歉,因为现在我无法更正它(21小时已经过去,我的投票被锁定),但它本应该是一个赞,因为这个答案完全符合要求! - That Marc
3
澄清一下,根据 https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-showwindow?WT.mc_id=DOP-MVP-5001655 ,6 对应于 SW_MINIMIZE - David Gardiner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接