자동 업그레이드 프로그램을 만들었습니다. ftp를 사용하지 않고
File을 읽어서 하는....
본 프로그램을 실행 합니다.
서버의 프로그램과 비교해서 다르면 다운로드 프로그램을 실행하면서
본 프로그램을 종료합니다.
본 프로그램 메인폼 Create 이벤트에 서 시작합니다.
Begin
....
....
//다운로드 프로그램 실행
Winexec('C:Program FilesAESystem\AE ClientDownLoad.exe',SW_SHOWNORMAL);
//본 프로그램 종료
FmMain.Close;
....
....
end;
요렇게 하니 다운로드 프로그램의 폼이 보이고 한참 후에(약 4-5초)
본 프로그램이 종료 됩니다.
질문1. 다운로드 프로그램이 보이면서 바로(1초이내) 본 프로그램을
종료 하려면 어찌 해야 합니까?
질문2. 다운로드 프로그램 폼에 버튼이 있는데 현재는 유저가 직접 Click
해야 됩니다.
이 버튼을 폼에서 버튼까지 생성(Show)된 후 클릭 하려면 폼의 어떤
이벤트를 사용 해야 합니까?
읽어주셔서 감사합니다.
아래는 게시판에 많이 나오는 외부플 사용하기를 쓴겁니다.
먼저 타이머를 하나 놓고요 초기 Timer1의 Enabled속성을 False
Interval에 1000값으로 셋팅한후
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//본 프로그램 종료
FmMain.Close;
end;
아래는 생성할 폼핸들과 버튼핸들을 찾아 실행시키기 입니다.
var
TargetForm : HWND;
ButtonHwnd : HWND;
begin
//다운로드 프로그램 실행
Winexec('C:......DownLoad.exe',SW_SHOWNORMAL);
TargetForm := FindWindow(nil, '그폼의 갭션에 있는 글...');
if TargetForm = 0 then Exit;
ButtonHwnd := FindWindowEx(TargetForm, 0, 'TButton', '버튼 캡션의 글...');
if ButtonHwnd <> 0 then begin //또는 SendMessage로도 해보세요
PostMessage(ButtonHwnd, WM_LBUTTONDOWN, 0, 0);
PostMessage(ButtonHwnd, WM_LBUTTONUP, 0, 0);
end;
Timer1.Enabled := True;