2011-02-03 1015 views
0

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

我已经停用显示cmd窗口下面的方法:

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

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

有没有人一个想法如何做到这一点?

kampi

回答

1

的lpCmdLine参数WinMain中,您可以访问命令行程序。您可以简单地阅读它的值,然后根据其值进行适当的操作。

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

希望这会有所帮助!

+0

嗨!好吧,我读了值,但我如何启用/显示窗口?你能帮我一下吗? – kampi 2011-02-03 10:04:32

+0

@ Kampi-道歉;我以为你被命令行阅读绊倒了,而不是控制台。我已经编辑了我的答案,详细介绍了如何做到这一点。我希望它很有用! – templatetypedef 2011-02-03 10:12:16

0

由于您在其他答案的评论中说过,您可以很好地管理命令行参数部分,下面是可以帮助您的其他部分。我希望你需要隐藏控制台窗口,对吧?

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

ShowWindow(GetConsoleWindowHandle(),SW_HIDE);