Announcement

Collapse
No announcement yet.

Datum aus dem WWW empfangen mit Delphi

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datum aus dem WWW empfangen mit Delphi

    Salute,

    ich habe für mein Prog ein zusätzliches Update Programm geschrieben. Dieses Update Programm vergleicht die Datei Version auf der HD mit einer Versionsnummer aus einer TXT Datei die im WWW steht. Ist nun die Dateiversion auf der Platte kleiner als die in der TXT Datei, so wird ein Update aus dem WWW geladen und überschreibt die aktuelle Version auf der Platte, soweit alle in Ordnung.

    Nun soll sich nicht jeder dieses Update ziehen können, sondern nur der, der mit auch einen Updatevertrag abgeschlossen hat.

    Hierfür bekommt der Anwender dann eine PIN und eine Datum, wann der Vetrag ausläuft.

    Startet der Anwender nun das Update Prog., so muß er seine PIN angeben. Diese PIN wird dann aus einer TXT Datei im WWW ausgelesen und das dazugehörige Ende des Updatevertrages:

    PIN Vertragsende

    64138564464 01.06.02
    64675604464 01.03.02
    23454364464 01.10.02

    Ist das aktuelle Datum kleiner als das Datum des Vertagsendes, so kann ein Update erfolgen.

    HIER NUN DIE FRAGE:
    Jetzt könnte der Anwender ja das Systemdatum seines Rechner einfach zurücksetzen und immer weiter Updates beziehen, auch wenn der Vertrag schon abgelaufen ist.

    Wie schaffe ich es, das Vertragsendedatum nicht mit dem Systemdatum zu vergleichen, sondern mit einem Datum aus dem WWW?

    Bitte um Hilfe....!

    THX
    WEBSTER

  • #2
    Moin WEBSTER,<br>
    ich empfehle Dir dafür die Indy Komponenten zu verwenden.<br>
    Hier im speziellen die TIdTime Komponente. Der folgende Source holt von einem Host das Datum.<br>
    Die Hostadresse und den Port habe ich in dem Beispiel für die TNMTime (Fastnet) gefunden. Eigentlich wollte ich auch die TNMTime Komponente verwenden, aber leider konnte ich nicht herrausfinden,<br>
    wie dieser Komponente das Datum zu entlocken ist. Lediglich an die Zeit konnte ich herankommen.<br>
    Ich verwende D5 Pro mit den Indy-Komponenten in der Version 9.0.1-B<br>
    Wenn Du diese Komponenten nicht hast, dann solltest Du sie Dir besorgen. Ich habe damit schon einiges gemacht und muß sagen, die sind wirklich gut.<br>
    <pre>
    <font face="Verdana" size="1" color="#000000">unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
    IdTime, ComCtrls;

    type
    TForm1 = class(TForm)
    IdTime: TIdTime;
    btnGetdate: TButton;
    Label1: TLabel;
    SB: TStatusBar;
    procedure btnGetdateClick(Sender: TObject);
    procedure IdTimeConnected(Sender: TObject);
    procedure IdTimeDisconnected(Sender: TObject);
    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.btnGetdateClick(Sender: TObject);
    begin
    Label1.Caption:=DateToStr(IdTime.DateTime);
    end;

    procedure TForm1.IdTimeConnected(Sender: TObject);
    begin
    SB.SimpleText:='Connection';
    end;

    procedure TForm1.IdTimeDisconnected(Sender: TObject);
    begin
    SB.SimpleText:='Disconnected';
    end;

    end.

    Forumlar

    object Form1: TForm1
    Left = 340
    Top = 233
    Width = 407
    Height = 180
    Caption = 'DateTime aus dem Internet'
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    OldCreateOrder = False
    PixelsPerInch = 96
    TextHeight = 13
    object Label1: TLabel
    Left = 192
    Top = 60
    Width = 32
    Height = 13
    Caption = 'Label1'
    end
    object btnGetdate: TButton
    Left = 60
    Top = 56
    Width = 75
    Height = 25
    Caption = 'Date'
    TabOrder = 0
    OnClick = btnGetdateClick
    end
    object SB: TStatusBar
    Left = 0
    Top = 134
    Width = 399
    Height = 19
    Panels = &lt;&gt;
    SimplePanel = True
    end
    object IdTime: TIdTime
    OnDisconnected = IdTimeDisconnected
    ReadTimeout = 0
    Host = 'time.nist.gov'
    OnConnected = IdTimeConnected
    Port = 37
    BaseDate = 2
    Left = 8
    Top = 16
    end
    end</font>
    </pre>
    Jens Schumann<br&gt

    Comment

    Working...
    X