如何隐藏/显示cmd窗口?

时间:2011-02-03 09:45:19

标签: c windows

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

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

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

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
 ...
 ...
 ...
}

有谁知道如何做到这一点?

kampi

2 个答案:

答案 0 :(得分:1)

WinMain的lpCmdLine参数使您可以访问该程序的命令行。您可以简单地读取其值,然后根据其值采取适当的操作。

编辑:在Windows中显示控制台的实际机制有点棘手。您必须创建控制台,然后重定向标准输出流以写入它。对这个here进行了很好的讨论,它很好地详细说明了它的工作原理以及完成工作所需的代码。

希望这有帮助!

答案 1 :(得分:0)

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

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

ShowWindow(GetConsoleWindowHandle(),SW_HIDE);