Запуск скрытой программы на C ++ - PullRequest
5 голосов
/ 30 ноября 2011

Я создаю программу на C ++ с Visual Studio 2010, которая должна работать на фоне моей машины.

Поэтому при запуске я не должен видеть экран CMD во время работы.Как я могу это сделать?Должен ли я использовать Win32 API или для этого подойдет обычная программа на C ++?

Обратите внимание, что в моей программе вообще нет графического интерфейса.

Ответы [ 6 ]

14 голосов
/ 30 ноября 2011

Использовать WinMain ():

#include <windows.h>

int WINAPI WinMain(HINSTANCE inst,HINSTANCE prev,LPSTR cmd,int show)
{
  // program starts here
  return 0;
}

// int main()  <-- remove main() 

Затем убедитесь, что настройки вашего проекта установлены так, что вы строите программу «Win32», а не «Консоль».

enter image description here

Редактировать: Как указывает @Sehe, winMain может не понадобиться, хотя я не совсем уверен, где находится эта опция.

5 голосов
/ 30 ноября 2011

Запустите его как сервис См. Здесь.

2 голосов
/ 30 ноября 2011

В Windows программы Daemon реализованы как Службы .

2 голосов
/ 30 ноября 2011

Очень часто программа, работающая под Windows без «лица» (например, без пользовательского интерфейса вообще), реализуется как Сервис .

1 голос
/ 30 ноября 2011

Просто сделайте это приложение с графическим интерфейсом вместо приложения командной строки.Щелкните правой кнопкой мыши проект -> Свойства -> Свойства конфигурации -> Компоновщик -> Система -> Подсистема -> Windows (/SUBSYSTEM:WINDOWS).

0 голосов
/ 30 ноября 2011

Вы можете работать как процесс Windows (который не подключается к консоли), но никогда не создавать окна. Основным отличием является подпись WinMain и флаги для компилятора.

Перейдите в Файл -> Новый проект, выберите стандартное приложение Windows, затем удалите все, кроме WinMain.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...