<!--CodeS-->
// 변수선언....
:
public
{ Public declarations }
RunProcess : LongInt ; // 실행시킨 프로그램 핸들을 가지고 있을 전역변수
// 이 예제는 메인 폼의 public에 선언하고 사용했을 경우입니다.
end;
:
<!--CodeE-->
<!--CodeS-->
// 메인폼 생성...
// 필요한 부분에서 원하는 프로그램을 실행하도록 수정...
procedure Tfrorm1.FormCreate(Sender: TObject);
var
StartInfo : TStartupInfo ; // process 시작 정보
ProcessInfo : TProcessInformation ; // process 정보
begin
if CreateProcess( PChar('c:\xxxx.exe'), nil, nil, nil, False,
CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS, nil, nil, StartInfo,
lx_ProcessInfo ) then
begin
// 외부 프로그램이 정상적으로 실행되었으면.. Process handle을 저장.
RunProcess := ProcessInfo.hProcess ;
<!--CodeS-->
// 메인폼이 종료될때... 외부 실행 프로그램이 실행중이면 종료..
// 이부분 역시 외부 프로그램을 종료하고자 하는 시점에서 처리해 주시면 됩니다.
procedure Tfrorm1.FormDestroy(Sender: TObject);
begin
// 프로세스 핸들값이 있으면 해당 외부프로그램 핸들을 가지고 프로그램을 종료한다.
if RunProcess <> 0 then
begin
if TerminateProcess( RunProcess, 0 ) = False then
begin
Application.MessageBox( '프로그램을 종료할 수 없습니다.'+
chr(13)+'메모리에 프로세스가 실행중이면 강제 종료 하십시오',
'프로그램 종료 확인',
MB_OK + MB_ICONWARNING ) ;
end ;
end ;
<!--CodeS-->
// 변수선언....
:
public
{ Public declarations }
RunProcess : LongInt ; // 실행시킨 프로그램 핸들을 가지고 있을 전역변수
// 이 예제는 메인 폼의 public에 선언하고 사용했을 경우입니다.
end;
:
<!--CodeE-->
<!--CodeS-->
// 메인폼 생성...
// 필요한 부분에서 원하는 프로그램을 실행하도록 수정...
procedure Tfrorm1.FormCreate(Sender: TObject);
var
StartInfo : TStartupInfo ; // process 시작 정보
ProcessInfo : TProcessInformation ; // process 정보
begin
if CreateProcess( PChar('c:\xxxx.exe'), nil, nil, nil, False,
CREATE_NEW_PROCESS_GROUP+NORMAL_PRIORITY_CLASS, nil, nil, StartInfo,
lx_ProcessInfo ) then
begin
// 외부 프로그램이 정상적으로 실행되었으면.. Process handle을 저장.
RunProcess := ProcessInfo.hProcess ;
Screen.Cursor := crHourGlass ;
Delay( 4000 ) ; // 잠시대기..^^;
Screen.Cursor := crDefault;
end;
end;
<!--CodeE-->
<!--CodeS-->
// 메인폼이 종료될때... 외부 실행 프로그램이 실행중이면 종료..
// 이부분 역시 외부 프로그램을 종료하고자 하는 시점에서 처리해 주시면 됩니다.
procedure Tfrorm1.FormDestroy(Sender: TObject);
begin
// 프로세스 핸들값이 있으면 해당 외부프로그램 핸들을 가지고 프로그램을 종료한다.
if RunProcess <> 0 then
begin
if TerminateProcess( RunProcess, 0 ) = False then
begin
Application.MessageBox( '프로그램을 종료할 수 없습니다.'+
chr(13)+'메모리에 프로세스가 실행중이면 강제 종료 하십시오',
'프로그램 종료 확인',
MB_OK + MB_ICONWARNING ) ;
end ;
end ;
end;
<!--CodeE-->