Как заставить консольную программу исчезать и работать в фоновом режиме? - PullRequest
4 голосов
/ 14 января 2009

Как заставить консольную программу исчезнуть и работать в фоновом режиме? Я имею в виду, я не хочу видеть программу, но хочу, чтобы она работала в диспетчере задач.

Спасибо.

Ответы [ 6 ]

3 голосов
/ 14 января 2009

Предполагая Windows и .NET:

Вы можете установить тип вывода «Приложение Windows», и он не откроет окно консоли ....

Или вы можете создать службу Windows ...

2 голосов
/ 14 января 2009

Вы могли бы также сделать тот, который идет в системный трей. Это также позволит вам добавить процесс Kill непосредственно из системного трея, а не в диспетчер задач. В .NET я использовал следующее: http://www.developer.com/net/csharp/article.php/3336751

Это может предложить несколько преимуществ.

0 голосов
/ 05 сентября 2016

В 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;
}
0 голосов
/ 14 января 2009

Предполагая, что вы не можете изменить консольное приложение и сделать его приложением без окон, вы можете создать приложение без окон, которое запускает консольную программу и перенаправляет все стандартные потоки ввода и вывода в «фиктивные» потоки.

0 голосов
/ 14 января 2009

Если вы используете Windows, попробуйте

start command.exe

Если вы используете * nix

nohup command
0 голосов
/ 14 января 2009

Предполагается, что среда MS Windows XP:

Мое предложение будет заключаться в том, чтобы сделать Службу Windows для выполнения того, что вы просите, хотя другой возможностью было бы установить что-то в msconfig для запуска программы при запуске или в группе запуска в пределах Раздел «Пуск-> Все программы-> Запуск».

Если вы работаете на Mac, Linux или какой-либо другой операционной системе, возможно, существует аналогичная функция, которая служит местом для запуска программ в фоновом режиме.

...