我想在运行应用程序时隐藏我的C控制台。如何让我的应用程序在后台运行?
答案 0 :(得分:5)
默认情况下,main()
的程序编译为SUBSYSTEM:CONSOLE应用程序并获取控制台窗口。如果您拥有应用程序启动的其他进程,则可以通过以下方法之一将它们修改为窗口化应用程序:
WinMain()
代替main()
。这是典型的方法,但需要修改代码。 (如果使用main()
的原因是为了便于访问argc
/ argv
,MSVC会为窗口化应用程序提供全局__argc
/ __argv
等效项。)/SUBSYSTEM:WINDOWS /ENTRY:main
的{{1}}参数明确指定子系统和入口点。link.exe
更改子系统类型。如果您没有对衍生进程的源代码访问权限,那么这个可能很有用。答案 1 :(得分:2)
最简单的方法是使用Windows窗体项目而不是控制台,然后隐藏启动窗体。另一种选择当然是Windows服务,但这可能有点过分......
答案 2 :(得分:0)
如果我没记错的话,就没办法以编程方式进行。有选项可以做到这一点。我想我过去通过创建一个Windows项目来完成它,但是没有Windows Forms代码(我只是包含来自我的控制台应用程序的文件)。没有弹出控制台窗口。我相信我通过更改GUI中的选项在Code::Blocks中完成了一次。对不起,我不能具体,但我使用的是Visual Studio 2010 RC,我在那里做的方式可能与你的不一样。
您的评论让我觉得您正在催生流程。你通过你调用的函数来完成它。我不知道你正在使用什么语言(我会假设是C,因为你说你正在启动你创建的C应用程序?),但是有一个标志要说隐藏窗口或(或者标记你不要设置为不显示它或使用执行相同操作的替代功能,但以不同的方式启动该过程。试试shellexecute和system()。
答案 3 :(得分:0)
将CreateProcess
与DETACH_PROCESS
标记一起使用。