Форум: "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.014 c
1-43072           forrest1              2002-02-21 16:37  2002.03.14  
Почему нажатие Tab в DBGrid переводит курсор на следующую запись?


14-43169          Awex                  2002-01-31 14:33  2002.03.14  
Подскажите плиз, книку Рэя Конопки кто нибудь видел в каком нибудь интернет магазине, и Белеро и Озон и море других просмотрел, так и ненашел.... везде в нулевых остатках.... :(((


7-43196           Andersen              2001-08-07 01:38  2002.03.14  
Как самому написать VXD/SYS драйвер и без DDK это возможно?


1-43031           SuperIgor             2002-02-22 22:44  2002.03.14  
Изображение экрана


3-42963           Ulikoff               2002-02-15 10:48  2002.03.14  
Настройка БД по сети