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

Вниз

Блокировка окна запускаемого консольного приложения   Найти похожие ветки 

 
AndreyS   (2003-10-06 15:46) [0]

Извиняюсь за наверное уже задаваемый вопрос, но искать скорость
сетки и время не позволяют.

Вот стандартный (из книжки) код по запуску консольного (не досовского) приложения.

var
StartInfo: TstartupInfo; ProcInfo: TProcessInformation;
----------------------------------------------------------------------

FillChar(StartInfo, Sizeof(StartInfo), #0);
StartInfo.cb:=Sizeof(StartInfo);
StartInfo.wShowWindow:=SW_HIDE;
if not CreateProcess(nil, "myprog", nil, nil, false,
CREATE_NEW_CONSOLE or HIGH_PRIORITY_CLASS, nil, nil, StartInfo, ProcInfo)
then ShowMessage(IntToStr(GetLastError))
else begin
//Application.ProcessMessages;
if WaitForSingleObject(ProcInfo.hProcess, 600000) = WAIT_TIMEOUT
then begin ShowMessage(" Time enoght") end;
{ExitProcess(ProcInfo.hThread);}
CloseHandle(ProcInfo.hProcess);
end;

Все работает нормально, но сделать невидимым и лучше вообще несоздаваемым
окно (которое почему то создается под консольное приложение) не удается.
Консольное приложение на экран ничего не посылает, только в файлы пишет,
да и читает только с файлов.
Как сделать так чтобы окно для него не создавалось (сейчас мелькает пустое
черное окно с названием проги на линейке). Время на это тратится и сильно
портит впечатление от работы вызывающего приложения.

Прошу помочь.
Заранее спасибо за ответ.


 
Verg ©   (2003-10-06 15:54) [1]


> if not CreateProcess(nil, "myprog", nil, nil, false,
> CREATE_NEW_CONSOLE or HIGH_PRIORITY_CLASS, nil, nil, StartInfo,
> ProcInfo)


Может убрать?


 
AndreyS   (2003-10-06 20:21) [2]

Ну убрал- и ничего (окошко только еще дольше висит, пока винды догадываюся его прикрыть).


 
DVM ©   (2003-10-07 09:34) [3]

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


 
Polevi ©   (2003-10-07 09:53) [4]

StartInfo.dwFlags:=STARTF_USESHOWWINDOW;


 
AndreyS   (2003-10-07 12:20) [5]

Polevi спасибо.
Я вчера уже нашел это у себя дома в Дарахвелидзе Delphi4. Все логично - прежде чем указывать
команду надо указать кто ее будет отрабатывать. Вот что значит читать разные брошурки
перепечатываемые людьми которые сами наверное ничего не писали толком.
В брошурке StartInfo.dwFlags:=STARTF_USESHOWWINDOW; потеряно.
Видимо на работу надо тащить нормальные книжки из дома.
Еще раз спасибо.



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

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

Наверх




Память: 0.48 MB
Время: 0.006 c
6-11655
Yrtimd
2003-10-09 02:43
2003.12.04
Терминатор Интернет-соединения


6-11681
Recruit
2003-10-06 07:48
2003.12.04
NMPOP3.GetSummary в NMPOP3.Summary.Subject абракадабра?


6-11639
pavia
2003-10-09 22:01
2003.12.04
пОЧЕМУ ОШИБКИ


4-11754
otistarda
2003-10-08 16:13
2003.12.04
Консоль


4-11739
Pavels
2003-10-11 13:57
2003.12.04
проблема с создание окна