Форум: "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.03 c
14-43165          SV                    2002-01-30 13:34  2002.03.14  
Зухел connect...


4-43227           otari                 2002-01-07 12:32  2002.03.14  
как поимать HWND если у приложений две edit


1-43011           Жаждующий             2002-02-28 11:16  2002.03.14  
Нужно получить название пункта меню, выбранного в PopupMenu


3-42973           Di_wind               2002-02-13 20:23  2002.03.14  
Access +Delphi+DAO


1-43114           Igl                   2002-02-28 09:43  2002.03.14  
Делаю следующее: richedit1.lines.loadfromfile( xxx ); Поле заполняется и показывается начало текста и лифтом можно прокрутить его вниз, а как сделать чтобы сразу лифт и текст был внизу.