Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > запуск консольной программы и сокрытие ее консоли


Автор: boostcoder 12.7.2011, 11:21
всем привет.

такая ситуация: программа, с некоторой периодичностью запускает некую другую консольную программу которая что-то выполняет и завершается.
проблема в том, что показывается и консоль программы.
вопрос: как ее запускать, чтоб при этом консоль не отображалась?

зы
в данный момент запускаю с помощью http://doc.qt.nokia.com/latest/qprocess.html. если нужно, заюзаю WinAPI. не вопрос.


спасибо.

Автор: BorisVorontsov 12.7.2011, 11:49
ShellExecuteEx SEE_MASK_NO_CONSOLE

Автор: boostcoder 12.7.2011, 11:59
BorisVorontsov, спасибо. сейчас попробую.
но структура SHELLEXECUTEINFO жестокая штуковина smile 

Автор: voral 12.7.2011, 12:17
Цитата(boostcoder @  12.7.2011,  11:21 Найти цитируемый пост)
зы
в данный момент запускаю с помощью QProcess. если нужно, заюзаю WinAPI. не вопрос.

странно. По умолчанию должно быть выключено Попробуйте дописать в pro файл   Qt =-console

Случайно testlib не подключен?

Автор: boostcoder 12.7.2011, 12:37
voral, та программа, которую запускаю - не моя. ее исходников тоже нет.

Автор: boostcoder 12.7.2011, 12:53
BorisVorontsov, все гут.
спасибо огромное.

Код

   SHELLEXECUTEINFO exec;
   memset(&exec, 0, sizeof(exec));
   
   exec.cbSize = sizeof(exec);
   exec.fMask = SEE_MASK_NO_CONSOLE;
   exec.lpDirectory = L".";
   exec.lpVerb = L"open";
   exec.lpFile = L"process.exe";
   
   if ( !::ShellExecuteEx(&exec) ) {
      std::cout << "ShellExecuteEx: " << LastErrorMessage() << std::endl;
   }


Автор: 500mhz 12.7.2011, 20:28
заголовок запускаемой проги подправить )

Автор: boostcoder 12.7.2011, 20:30
500mhz, не понял...

Автор: 500mhz 14.7.2011, 19:51
ну в РЕ заголовке любого ехе есть 1 байтик, значение которого отвечает за консоль или гуи.
То есть если мелькает консоль, меняем значение на gui ну и все.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)