如何使控制台程序消失并在后台工作?我的意思是,我不想看到程序,但我想看到它在任务管理器中运行。
谢谢。
假设 Windows 和 .NET:
您可以将其输出类型设置为“Windows 应用程序”,它不会打开控制台窗口......
或者您可以创建一个 Windows 服务...
您也可以制作一个进入系统托盘。这也将允许您直接从系统托盘添加终止进程,而不是转到任务管理器。在.NET中,我使用了以下内容:http: //www.developer.com/net/csharp/article.php/3336751
这可能会提供一些优势。
假设 MS Windows XP 环境:
我的建议是考虑创建一个Windows 服务来执行您的要求,尽管另一种可能性是在 msconfig 中设置一些东西以在启动时或在“开始->所有程序->启动”中的启动组中运行该程序“ 部分。
如果您在 Mac、Linux 或其他一些操作系统上,可能存在类似的功能来充当在后台运行程序的地方。
如果您使用的是 Windows,请尝试
start command.exe
如果你使用 *nix
nohup command
假设您无法修改控制台应用程序并使其成为无窗口应用程序,您可以创建一个无窗口应用程序来启动控制台程序并将所有标准输入和输出流重定向到“虚拟”流。
在 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;
}