외부 프로그램 실행하고 대기하기
= ShowModal과 비슷
외부 프로그램을 실행 후 실행한 프로그램이 종료될때까지 대기상태(루프)에 들어간다.
uses
shellapi;
{...}
Procedure ShellExecute_AndWait(FileName:String;Params:String);
var
exInfo : TShellExecuteInfo;
Ph : DWORD;
begin
FillChar( exInfo, Sizeof(exInfo), 0 );
with exInfo do
begin
cbSize:= Sizeof( exInfo );
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
ExInfo.lpVerb := 'open';
ExInfo.lpParameters := PChar(Params);
lpFile:= PChar(FileName);
nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@exInfo) then
begin
Ph := exInfo.HProcess;
end
else
begin
ShowMessage(SysErrorMessage(GetLastError));
exit;
end;
//무한대기
while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(Ph);
end;
---------실행 예제
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute_AndWait('FileName','Parameter');
end;
'Delphi Tip > +Tip' 카테고리의 다른 글
왕초보를 위한 아주 기본적인 Tips (0) | 2022.03.07 |
---|---|
윈도우 포커스 및 최상위로 올리기/활성화 (0) | 2022.02.23 |
시스템 대기모드/화면 보호기/모니터 끄기 이벤트 감지하기 (0) | 2022.02.17 |
문자열에서 특정 문자까지 자르기 (0) | 2022.02.16 |
델파이 로고(logo) 관리 (0) | 2022.02.15 |
댓글