Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.10;
Скачать: CL | DM;

Вниз

Как спрятать вывод на консоль?   Найти похожие ветки 

 
Zheksonz   (2009-03-24 19:19) [0]

Вечер добрый. Использую следующий код для запуска консольной программы и ожидания её завершения:


procedure StartDistr;
var si: STARTUPINFO;
   pi: PROCESS_INFORMATION;
   cmdline: string;
begin
 ZeroMemory(@si,sizeof(si));
 si.cb:=SizeOf(si);
 si.dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
 cmdline := ExtractFilePath(ParamStr(0)) + "DNE.EXE";
 Form2.Show;
 Application.ProcessMessages;
 if not CreateProcess( nil, { No module name (use command line). }
 PChar(cmdline),            { Command line. }
 nil,                       { Process handle not inheritable. }
 nil,                       { Thread handle not inheritable. }
 False,                     { Set handle inheritance to FALSE. }
 0,                         { No creation flags. }
 nil,                       { Use parent"s environment block. }
 nil,                       { Use parent"s starting directory. }
 si,                        { Pointer to STARTUPINFO structure. }
 pi )                       { Pointer to PROCESS_INFORMATION structure. }
 then
 begin
  ShowMessage( "CreateProcess failed." );
  Exit;
 end;

 WaitForSingleObject( pi.hProcess, INFINITE );

 CloseHandle( pi.hProcess );
 CloseHandle( pi.hThread );

end;


как мне спрятать вывод на консоль и где можно почитать про параметры STARTUPINFO и PROCESS_INFORMATION.


 
Palladin ©   (2009-03-24 19:24) [1]


> где можно почитать про параметры STARTUPINFO и PROCESS_INFORMATION.

Глупый вопрос. Тебе не кажется?


 
Riply ©   (2009-03-24 19:25) [2]

> где можно почитать про параметры STARTUPINFO и PROCESS_INFORMATION

В Help`е ?


 
Немо ©   (2009-03-25 09:02) [3]

у меня и так этот код не показывает консоль


 
Zhekson   (2009-03-25 09:48) [4]

прошу прощения, поспешил с вопросом...

сейчас ситуация такая:

si.dwFlags := STARTF_USESHOWWINDOW
si.wShowWindow := SW_HIDE;


на моём рабочем и домашнем компе установка этих опций скрывает консоль, а вот на третьем компьютере, консоль не скрывается((( Удивительно то, что запускается одно и то же ДОСовское приложение и даже система стоит с одного DVD диска.

полез тогда в свойства CreateProcess, установил флаг CREATE_NO_WINDOW, что позволило убрать код:

si.dwFlags := STARTF_USESHOWWINDOW
si.wShowWindow := SW_HIDE;


и консоль скрывается, но, чисто теоретически, где вероятность что на третьем компе она опять не появится??? пока возможности испытать нет((


 
Zhekson   (2009-03-25 10:52) [5]

с флагом CREATE_NO_WINDOW, на третьем компе, вообще перестало запускаться приложение, выдавая следующее сообщение:

"16-разрядная подсистема MS-DOS
не удалось провести инициализацию режима для видеоустройства"

итого имеем:

si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := SW_HIDE;

не срабатывает

а CREATE_NO_WINDOW вообще не запускает приложение...


 
Anatoly Podgoretsky ©   (2009-03-25 13:16) [6]

> Riply  (24.03.2009 19:25:02)  [2]

Это слишком просто.


 
Zhekson   (2009-03-26 16:10) [7]

Anatoly Podgoretsky ©   (25.03.09 13:16) [6]

это слишком просто для тех, кто сначала думает, а потом делает... ;)

В моем же случае просто необходимо сначала "шишек набить" (((

в общем флаг CREATE_NO_WINDOW сработал, при обязательном выключении полноэкранности запускаемого приложения.


 
Anatoly Podgoretsky ©   (2009-03-26 16:45) [8]

У тебя это великолепно выходит.



Страницы: 1 вся ветка

Текущий архив: 2009.05.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
3-1220519388
greg123
2008-09-04 13:09
2009.05.10
Можно ли в запросе заменить названия столбцов на их описание?


15-1236243315
Mephisto
2009-03-05 11:55
2009.05.10
Regular Expression


10-1155886244
Alvin
2006-08-18 11:30
2009.05.10
Защита документа Word


6-1202811409
Lamer666
2008-02-12 13:16
2009.05.10
TIdHTTP+TidSSLIOHandlerSocket парсинг!


2-1235855215
Индеец
2009-03-01 00:06
2009.05.10
Использование Ansistring в D2009 в packed record