![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
запуск программы из своей с контролем
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()