我很抱歉,如果有人问过,但我找不到答案.我可能没有找到合适的条款.
我有一个需要在后台运行的控制台程序.用户需要控制台在运行时保持打开状态,但需要它在启动时不会成为活动窗口.他们希望继续他们目前正在进行的工作,而不是每次启动时都要尽量减少控制台.
此控制台应用程序多次运行,每次都有一个新的控制台窗口.如何在当前正在运行的任务/窗口后面"隐藏"控制台?
您可以使用以下代码以编程方式最小化/恢复控制台窗口:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |