Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запуск программы из своей с контролем


igorbuz ©   (2003-02-23 04:42:00) 

Подскажите, как запустив программу из своей программы, убедиться что она запущена и выполняется. Т.е. тот момент когда она уже загрузилась и начала работать. Спасибо заранее!


igorbuz   (2003-02-27 16:02:00) [1]

я примерно так и думал. спасибо за прояснение!


Diamond Cat   (2003-02-25 22:59:00) [2]

попробуй запусти раз двадцать (или более) эту программу без эитх строк и проверь ресурсы системы , состояние конечно не плачевное но они падают


igorbuz   (2003-02-25 04:24:00) [3]

2 Alexander B., Diamond Cat & Song
работает прекрасно, спасибо всем еще раз огромное!
использовал в кач. основы текст Alexandra B. (см.), скажите а зачем там следующее:
CloseHandle(Pi.hThread);
и
CloseHandle(Pi.hProcess);
?


Diamond Cat   (2003-02-24 17:25:00) [4]

согласен, но это уже частности


igorbuz   (2003-02-24 16:14:00) [5]

спасибо всем!
с праздником!


Song   (2003-02-24 05:15:00) [6]

2Diamond Cat © (24.02.03 00:56)
:)
Не обязятельно CreateProcess, можно и ShellExecuteEx()
Главное нужно узнать идентификатор процесса.
С праздником.


Diamond Cat   (2003-02-24 00:56:00) [7]

добавляю к Song что для начала CreateProcess а уж далее WaitForInputIdle


igorbuz   (2003-02-23 16:07:00) [8]

Спасибо огромное! Буду пробовать!


Alexandr B.   (2003-02-23 10:02:00) [9]

function EnumWindowsProc(hWindow : hWnd;
lParam : LongInt) : Bool
{$IFDEF Win32} stdcall; {$ELSE} ; export; {$ENDIF}
begin
Result := True;
if IsWindowVisible(hWindow) then
begin
SetWindowText(hWindow,"test");
result := false;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var si:STARTUPINFO;
pi:PROCESS_INFORMATION;
begin
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);

CreateProcess(nil,
"notepad.exe"
,nil,nil,false,NORMAL_PRIORITY_CLASS,nil,nil,si,pi);
CloseHandle(Pi.hThread);
WaitForInputIdle(pi.hProcess,INFINITE);
CloseHandle(Pi.hProcess);
EnumThreadWindows(pi.dwThreadId,@EnumWindowsProc,0);
end;


Song   (2003-02-23 09:54:00) [10]

WaitForInputIdle()


Наверх

Титульная страница Поиск, карта сайта Написать письмо