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

Вниз

CreateProcess   Найти похожие ветки 

 
-= Demon =-   (2003-05-06 15:51) [0]

Ситуация такая - необходимо запустить приложение и дождаться окончания его выполнения. Делаем через CreateProcess. При этом запускаемое приложение должно быть невидимо (а это старый добрый DOS). Все делаем под win"2k.
Дилема - в структуре TStartupInfo в поле wShowWindow указываем SW_HIDE, но приложение все равно видно. Как избавиться от этого? Может кто предложит другой способ?

function Exec(...): integer;
var
pi: TProcessInformation;
si: TStartupInfo;

begin

.....

ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
si.lpReserved:=nil;
si.lpDesktop:=nil;
si.lpReserved2:=nil;
si.cbReserved2:=0;
si.wShowWindow:=SW_HIDE;
si.dwFlags:=STARTF_FORCEONFEEDBACK;
si.lpTitle:=PChar(sTitle);

bStart:=CreateProcess(
nil, // pointer to name of executable module
PChar(cmd), // pointer to command line string
nil, // pointer to process security attributes
nil, // pointer to thread security attributes
False, // handle inheritance flag
REALTIME_PRIORITY_CLASS, // creation flags
nil, // pointer to new environment block
nil, // pointer to current directory name
si, // pointer to STARTUPINFO
pi // pointer to PROCESS_INFORMATION
);

if bStart then
begin
try
while WaitforSingleObject(pi.hProcess, 100) = WAIT_TIMEOUT do
begin
Application.ProcessMessages;
if Application.Terminated then TerminateProcess(pi.hProcess, 0);
end;
finally
...
end;
end;

...

end;


 
circul ©   (2003-05-06 17:05) [1]

si.dwFlags := STARTF_FORCEONFEEDBACK+STARTF_USESHOWWINDOW;

Кроме этого, после окончания работы внешней программы

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


 
-= Demon =-   (2003-05-06 17:17) [2]

>circul
Спасибо...



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
3-20016
mikeee
2003-06-15 17:16
2003.07.07
Как узнать DBGrid.Columns


3-19974
???
2003-06-12 13:38
2003.07.07
вопрос про TDBGrid!


4-20342
Петр
2003-05-05 07:16
2003.07.07
Возникает ошибка EWin32Error


1-20127
OlkaGTS
2003-06-24 14:39
2003.07.07
Можно ли сделать перегрузку свойства (property overload)?


14-20241
Домарощинер
2003-06-19 17:11
2003.07.07
Market