Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何隐藏/显示cmd窗口?_C_Windows - Fatal编程技术网

如何隐藏/显示cmd窗口?

如何隐藏/显示cmd窗口?,c,windows,C,Windows,我创建了一个Win32控制台应用程序,并隐藏了cmd窗口。因此,如果我的应用程序正在运行,则只能通过正在运行的进程看到它。如果有办法,我想用以下方式修改我的申请: 如果我定义了一个参数,它应该显示cmd窗口,但是如果我不使用这个参数,那么它应该在不显示cmd窗口的情况下运行 我已禁用以下方式显示cmd窗口: #pragma comment( linker, "/SUBSYSTEM:WINDOWS" ) int WINAPI WinMain( HINSTANCE hInstance, HINST

我创建了一个Win32控制台应用程序,并隐藏了cmd窗口。因此,如果我的应用程序正在运行,则只能通过正在运行的进程看到它。如果有办法,我想用以下方式修改我的申请: 如果我定义了一个参数,它应该显示cmd窗口,但是如果我不使用这个参数,那么它应该在不显示cmd窗口的情况下运行

我已禁用以下方式显示cmd窗口:

#pragma comment( linker, "/SUBSYSTEM:WINDOWS" )

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
 ...
 ...
 ...
}
有人知道怎么做吗


kampi

WinMain的lpCmdLine参数允许您访问程序的命令行。您只需读取其值,然后根据其值采取适当的操作

编辑:在Windows中显示控制台的实际机制有点棘手。您必须创建控制台,然后重定向标准输出流以写入控制台。关于这一点有很多讨论,详细介绍了它的工作原理以及完成这项工作所需的代码


希望这有帮助

既然您在另一个答案的评论中说,您可以很好地管理命令行参数部分,那么下面是另一个可能对您有所帮助的部分。我希望你需要隐藏控制台窗口,对吗

无论如何,请尝试以下操作(未经测试):


你好好的,我读取了值,但是如何启用/显示窗口?你能帮我一点忙吗?@Kampi-抱歉;我以为你是被命令行读取而不是控制台绊倒了。我已经编辑了我的答案,更详细地介绍了如何做到这一点。我希望它有用!非常感谢,这就是我需要的!函数是GetConsoleWindow(),它返回一个句柄。
ShowWindow(GetConsoleWindowHandle(),SW_HIDE);