【发布时间】:2021-07-22 10:17:26
【问题描述】:
我目前正在开发一个使用控制台的 winform。为了让我使用控制台,我必须将我的项目属性设置为使用控制台应用程序。 Console Application Setting
但是,我希望我的应用程序显示和隐藏所述控制台。我目前正在使用 user32.dll 中的一个名为 ShowWindow(IntPtr, int) 的函数来执行此操作。
我的问题是应用程序现在首先通过控制台打开,即使在活动程序的Main() 中执行此ShowWindow 函数。
我正在寻找一种方法来完全隐藏控制台,直到我使用 ShowWindow() 取消隐藏它
下面是我如何做到这一点的片段。
#region Console Stuff
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
const int HIDE_Console = 0;
const int SHOW_Console = 5;
#endregion
public IntPtr ConsoleHandle = GetConsoleWindow();
public Main()
{
ShowWindow(ConsoleHandle, HIDE_Console);
}
这是一个示例,而不是我的确切代码。然而,它展示了我在做什么/试图做什么。
感谢所有给予的帮助!
【问题讨论】:
-
您可以将项目类型更改为 Windows 应用程序。然后像这里回答的那样运行控制台:stackoverflow.com/a/2593411/1713975
-
@CarlosMagnoRosa 问题在于它是一个新进程,而不是与 winform 相同的进程。 ://
-
请问控制台需要什么?
-
我认为如果不使用不同的流程(基于其他 stackoverflow 帖子)就不可能实现您想要的目标
标签: c# winforms console dllimport