关闭指定的窗口 from Visual Studio论坛

Q:

目前我正在用 C# 编写一个 A, 它需要向另外一个程序 B 提交命令。

由于 B 是由另外一间公司编写的,留下的唯一访问接口就是一个可使用参数的 BControl.exe 的 Win32 程序。例如:

启动: BControl.exe /C:Start
停止: BControl.exe /C:Stop

因此我选择使用 Process.Start(String, String) 方法来执行 BControl.exe。

当然,执行起来没有任何问题,但是每次发送命令的时候,后面总有一个黑色的控制台窗口一闪而过,给用户的体验非常差。

所以,我想请教一下,是否有其他函数,或者办法把这个黑丝的控制台窗口隐藏?

 

A:

调用Windows API 就可以执行。

在开头
using System.Runtime.InteropServices; 

然后在Main函数之前
[DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)] static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow); [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 


在Main 函数里面
Console.Title = "closed"; //为控制台窗体指定一个标题,便于定位和区分 IntPtr flag = FindWindow("ConsoleWindowClass", "closed"); if (flag != IntPtr.Zero) ShowWindow(flag, 0); //隐藏这个窗口 

这样就可以了。

你可能感兴趣的:(windows,String,api,C#,user)