Нет, не работает. Я не уверен, он вроде только на консольных приложениях пашет. В любом случае - нужно что-то серьезнее. Может как-то можно словить окно приложения и насильно его спрятать? Правда я гадаю, потому что нубас и не знаю, разумно ли это и как это реализовать. Какие вообще способы существуют?
Для начала попробовать через CreateProcess и поиграть с STARTUPINFO. Если не работает, то можно после создания процесса найти все окна, которые ему принадлежат и принудительно скрыть их, но в этом случае скорее всего на долю секунды окно появится. Можно создать процесс и в его памяти перехватить CreateWindow, чтобы всегда был сброшен флаг WS_VISIBLE
Я нашел хендл окна нужного, а как его скрыть? ShowWindow(handle, SW_HIDE) - не работает. Олсо, у меня семерка, может с этим связано? UAC - включен.
Тогда возьми для начала какой-нибудь uuSpy и попробуй им скрыть это окно. Или больше деталей, может ты там окно антивируса скрыть пытаешься...
У меня есть программа, с которой работает пользователь. Эта программа своей работе использует ехе. Она его распаковывает и запускает, он делает свое дело и сохраняет результат. Так вот, мне нужно чтобы этот экзешник не светил своим окном на весь экран, когда работает. UPD Временно решил так - в манифесте прописал <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> и перед запуском UAC спрашивает, запускать ли софтину. При утвердительном ответе юак больше не появляется, поэтому можно создавать отдельный десктоп и запускать приложение в нем. Да и вообще что угодно делать. Такие дела.
в mingw при компиляции если добавить -mwindows то консольное приложение станет вин32 приложением и окошко консоли не появится. В студии похоже аналог это сразу создавать проект вин32. если у вас вин32 приложение метод с SW_HIDE должен работать, попробуйте вместо ShellEcecute использовать старый добрый WinExec(cmd,SW_HIDE)