Запустить приложение без окна
От: slonopotam  
Дата: 03.03.05 14:23
Оценка:
Есть консольное приложение win32, из которого необходимо вызывать построитель графиков — wgnuplot.exe
Последний — стандартное приложение gui, умеющее работать как интерактивно, так и исполнять скрипт из файла и после этого молча завершаться. Разумеется, в данном случае интересен второй режим. Проблема в том, однако, что окно видимо все-таки создается, хотя и не показывается — когда происходит вызов wgnuplot из консольного приложения, окно, имеющее в этот момент фокус ввода, его на доли секунды теряет, после чего получает вновь.

Хотелось бы найти простое решение — понимаю, что можно пересобрать gnuplot в консольную версию хотя бы под cygwin, но может быть есть значительно более простые пути?
Нужно для внутреннего использования, так что варианты с модификацией wgnuplot.exe принимаются.

Заранее спасибо.
Re: Запустить приложение без окна
От: SergH Россия  
Дата: 03.03.05 14:30
Оценка:
Здравствуйте, slonopotam, Вы писали:

S>Есть консольное приложение win32, из которого необходимо вызывать построитель графиков — wgnuplot.exe

S>Последний — стандартное приложение gui, умеющее работать как интерактивно, так и исполнять скрипт из файла и после этого молча завершаться. Разумеется, в данном случае интересен второй режим. Проблема в том, однако, что окно видимо все-таки создается, хотя и не показывается — когда происходит вызов wgnuplot из консольного приложения, окно, имеющее в этот момент фокус ввода, его на доли секунды теряет, после чего получает вновь.

S>Хотелось бы найти простое решение — понимаю, что можно пересобрать gnuplot в консольную версию хотя бы под cygwin, но может быть есть значительно более простые пути?

S>Нужно для внутреннего использования, так что варианты с модификацией wgnuplot.exe принимаются.

Вариант, работающий с некоторой вероятностью. У WinMain есть параметр, в котором передаётся желаемое состояние окна, приложение может его игнорировать, а может и использовать. Туда можно передать SW_HIDE. Значение задаётся через структуру STARTUPINFO, передаваемую в CreateProcess.
Делай что должно, и будь что будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.