запретить открытие командной строки при _popen

#c #windows

#c #Windows

Вопрос:

Я открываю процесс на C следующим образом

 FILE* pipe = _popen(ss.str().c_str(), "r");
  

Это создаст окно cmd, которое выходит на передний план рабочего стола. Я хочу запретить открытие окна cmd, а если я не могу, способ свести его к минимуму.

Пробные решения:

 HWND hWnd = GetConsoleWindow();
ShowWindow(hWnd, SW_HIDE);
  

Но это работает, только если вы вызываете эту функцию в процессе, который содержит окно cmd.

Ответ №1:

Вместо использования _popen используйте CreateProcess и флаг CREATE_NO_WINDOW.

Комментарии:

1. Это был мой второй вариант, но я хотел избежать прохождения процедуры CreateProcess . Хотя спасибо за давление со стороны коллег 🙂