아래의 내용처럼 간단하게 화일을 복사하고 실행하려고 하는데 화면에
다운받고 있는 상태를 표시하려고 PACKETRECVED를 이용했는데
화면에 상태가 표시 되지 않네요... 고수님들의 한수를 부탁드립니다.
그리고 또한 수정할 부분이 있다면 한수를 좀...
/////////////////////////////////////////////////////////////////
unit DOWN;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, Psock, NMFtp, ComCtrls, ExtCtrls;
type
TDown_F = class(TForm)
NMFTP1: TNMFTP;
ProgressBar1: TProgressBar;
Panel1: TPanel;
Panel8: TPanel;
procedure NMFTP1PacketRecvd(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure NMFTP1TransactionStop(Sender: TObject);
procedure NMFTP1TransactionStart(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Down_F: TDown_F;
implementation
{$R *.DFM}
procedure TDown_F.NMFTP1PacketRecvd(Sender: TObject);
begin
Panel1.Caption := '';
ProgressBar1.Max := NmFtp1.BytesTotal;
ProgressBar1.Position := NmFtp1.BytesRecvd;
Panel1.Caption := IntToStr(Nmftp1.BytesTotal) + ' 중에 ' + IntToStr(NmFtp1.bytesrecvd) + ' 를 전송받았습니다.';
Application.ProcessMessages;
end;
procedure TDown_F.FormShow(Sender: TObject);
begin
NmFtp1.Host := 'xxx.xxx.xxx.xxx';
NmFtp1.UserID := 'Anonymous';
Try
Begin
Panel1.Caption := '서버와 접속 시도중입니다.';
NMFTP1.Connect;
If SetCurrentDir('C:IMSI') = False Then
CreateDir('C:IMSI');
If (FileExists('C:IMSIIMSI.EXE') = False) Or
(FileDateToDateTime(FileAge('C:IMSIIMSI.EXE')) <>
FileDateToDateTime(FileAge('IMSI.EXE'))) Then
Begin
Try
NmFtp1.DownLoad('IMSI.EXE','C:IMSIIMSI.EXE');
Except
On E:Exception Do
Begin
Application.MessageBox('화일 복사중 Error(101)가 발생했습
다.', '다운로드중...', mb_IconError + mb_Ok);
Close;
End;
End;
End;
NmFtp1.Disconnect;
WinExec(PChar('C:IMSIIMSI.EXE'), SW_Show);
Close;
End;
Except
On E:Exception Do
Begin
Application.MessageBox('접속에 실패했습니다.', '접속중...', mb_IconError + mb_Ok);
Close;
End;
End;
end;
procedure TDown_F.NMFTP1TransactionStop(Sender: TObject);
begin
Panel1.Caption := '전송이 완료되었습니다.';
end;
procedure TDown_F.NMFTP1TransactionStart(Sender: TObject);
begin
Panel1.Caption := '전송 시도중입니다.';
end;
procedure TDown_F.FormCreate(Sender: TObject);
begin
Top := 0;
Left := 0;
end;
end.
///////////////