Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 15:56 23.04.24 
Клубове/ Компютри и Интернет / Delphi Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Старт и следене (GetExitCodeProcess) на приложение
Автор NikB (любопитен)
Публикувано21.02.05 22:08  



Опитвам се от мое приложение да стартирам чуждо приложение и по таймер да следя и броя колко време работи чуждото приложение.
Със стартирането нямам проблеми – винаго се стартира ОК, но много бързо след това в събитието на таймера получавам GetExitCodeProcess различно от STILL_ACTIVE.
Къде ли е ключа от бараката?

Стартирането


{}function App__XXX_Start: boolean;
var
si : STARTUPINFO;
pi : PROCESS_INFORMATION;
CmdLine : string;
StartPath: string;
begin
Result := false;
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);

CmdLine:=Dlg_Params.Label__XXXPath.Caption+#0;
StartPath:=ExtractFilePath(Dlg_Params.Label__XXXPath.Caption)+#0;
if 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.
PChar(StartPath), // Use parent's starting directory.
si, // Pointer to STARTUPINFO structure.
pi ) // Pointer to PROCESS_INFORMATION structure.
then begin
Handle_XXX_Process := pi.hProcess;
Handle_XXX_Thread := pi.hThread;
Result := true;
end else begin
MsgDlg( 'Неуспешен опит за старт на програма "_XXX".'#13+
Dlg_Params.Label__XXXPath.Caption,
'Грешка',
mb_OK+MB_ICONERROR);
end;
end;


Таймера


OnTimer:
if GetExitCodeProcess(Handle_XXX_Process, xStyle) then begin
if xStyle=STILL_ACTIVE then begin
BitBtn__XXX.Caption := TmSecToMMSS(Timer_XXX_Cnt);
end else begin
Timer_XXX.Enabled := false;
end;
end;{}




Цялата тема
ТемаАвторПубликувано
* Старт и следене (GetExitCodeProcess) на приложение NikB   21.02.05 22:08
. * Re: Старт и следене (GetExitCodeProcess) на приложение mole.   22.02.05 00:00
. * Сигурно така става - може би e историята с VBX-ите NikB   22.02.05 00:56
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.