Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];




Вниз

Помогите!!! 


MystiX   (2002-01-13 15:59) [0]

Как запустить программу и ждать её завершения?
--------------------------------------------
Заранее спасибо!!!



Dimaond Cat   (2002-01-14 01:02) [1]

procedure TForm1.Button1Click(Sender: TObject);
var
si : Tstartupinfo;
p : Tprocessinformation;
begin
FillChar( Si, SizeOf( Si ) , 0 );
with Si do begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
Application.Minimize;
Createprocess(nil,"notepad.exe",nil,nil,false,Create_default_error_mode,nil,nil,si,p);
Waitforsingleobject(p.hProcess,infinite);
Application.Restore;
end;



dmitriyk   (2002-01-14 03:19) [2]

Cледующий код запускает приложение Clock.exe и минимизирует его окно. ExecProgram("clock.exe", 1).

Вот еще попробуй так:
Автор: Fabrнcio Fadel Kammer
Пример показывает как из Вашей программы запустить внешнее приложение и подождать его завершения.


function ExecAndWait(const FileName, Params: ShortString; const WinState: Word): boolean; export;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CmdLine: ShortString;
begin
{ Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x }
CmdLine := """ + Filename + "" " + Params;
FillChar(StartInfo, SizeOf(StartInfo), #0);
with StartInfo do
begin
cb := SizeOf(SUInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := WinState;
end;
Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo);
{ Ожидаем завершения приложения }
if Result then
begin
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
{ Free the Handles }
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end;
end;
А вот пример вызова этой функции:
ExecAndWait( "C:\windows\calc.exe", "", SH_SHOWNORMAL)



Параметр FileName = Имя внешней программы.
Параметр Params = Параметры, необходимые для запуска внешней программы
Параметр WinState = Указывает - как будет показано окно:
Для этого параметра мы можем так же использовать следующие константы:
SW_HIDE, SW_MAXIMIZE, SW_MINIMIZE, SW_SHOWNORMAL
PS: Этот код тестировался в delphi версий 3, 4 и 5.




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.041 c
1-42993           ne                    2002-02-28 12:20  2002.03.14  
окно типа пенели пуск


3-42969           Lost                  2002-02-15 20:38  2002.03.14  
W2kServer + IB тормоза на Update


14-43136          Polevi                2002-01-28 16:29  2002.03.14  
IIS не поддерживает сервлеты :( Свинство просто..


1-43065           Demon ltd             2002-02-26 23:43  2002.03.14  
Работа с Инстал Шилдом


3-42927           Sergant               2002-02-14 15:14  2002.03.14  
Выравнивание столбцов по ширине