如何使控制台程序消失并在后台工作?

时间:2009-01-14 18:55:22

标签: console background

如何让控制台程序消失并在后台运行? 我的意思是,我不想看到该程序,但我希望看到它在任务管理器中运行。

感谢。

6 个答案:

答案 0 :(得分:3)

假设Windows和.NET:

您可以将其输出类型设置为“Windows Application”,它不会打开控制台窗口....

或者您可以创建Windows服务...

答案 1 :(得分:2)

您也可以制作一张进入系统托盘的产品。这还允许您直接从系统托盘添加Kill Process,而不是转到任务管理器。在.NET中我使用了以下内容: http://www.developer.com/net/csharp/article.php/3336751

这可能会带来一些好处。

答案 2 :(得分:0)

假设MS Windows XP环境:

我的建议是考虑让Windows Service做你要求的事情,但另一种可能性是在msconfig中设置一些内容以在启动时运行程序或在“Start-”中的启动组中运行程序。 >所有程序 - > StartUp“部分。

如果您使用的是Mac,Linux或其他操作系统,则可能存在类似的功能,可以在后台运行程序。

答案 3 :(得分:0)

如果您使用的是Windows,请尝试

start command.exe

如果您使用的是* nix

nohup command

答案 4 :(得分:0)

假设您无法修改控制台应用程序并使其成为无窗口应用程序,您可以创建一个无窗口应用程序,启动控制台程序并将所有标准输入和输出流重定向到“虚拟”流。

答案 5 :(得分:0)

在Windows上使用ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false)隐藏控制台窗口。它仍将在后台运行,并且在任务栏上不可见。

但是,您必须运行Taskmgr.exe之类的任务管理器才能找到它并将其关闭。

#include <windows.h>  
#include <iostream>     
using namespace std;


int main () {   
    ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);
    while(true) {
                 // Do your hidden stuff here
    }   
return 0;
}