gpt4 book ai didi

c# - 如何防止 C# 控制台应用程序优先作为事件窗口?

转载 作者:太空狗 更新时间:2023-10-29 21:30:11 25 4
gpt4 key购买 nike

很抱歉,如果有人问过这个问题,但我找不到答案。我可能没有搜索正确的术语。

我有一个需要在后台运行的控制台程序。用户需要控制台在运行时保持打开状态,但需要它在启动时不成为事件窗口。他们希望继续他们目前正在做的事情,而不是每次启动时都必须最小化控制台。

此控制台应用程序运行多次,每次都有一个新的控制台窗口。如何将控制台“隐藏”在当前运行的任务/窗口后面?

最佳答案

您可以使用以下代码以编程方式最小化/恢复控制台窗口:

using System;
using System.IO;

namespace ConsoleApplication1
{
class Class1
{
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private const int SW_MINIMIZE = 6;
private const int SW_MAXIMIZE = 3;
private const int SW_RESTORE = 9;

[STAThread]
static void Main(string[] args)
{
IntPtr winHandle =
System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle;
ShowWindow(winHandle, SW_MINIMIZE);
System.Threading.Thread.Sleep(2000);
ShowWindow(winHandle, SW_RESTORE);
}
}
}

如果您使用 Process.Start 来启动控制台应用程序,最好使用这个:

System.Diagnostics.ProcessStartInfo process= new
System.Diagnostics.ProcessStartInfo(@"MyApplication.exe");
process.WindowStyle=System.Diagnostics.ProcessWindowStyle.Minimized;
process.UseShellExecute=false; // Optional
System.Diagnostics.Process.Start(process);

关于c# - 如何防止 C# 控制台应用程序优先作为事件窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6307057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com