Entwickler-Ecke

Internet / Netzwerk - Neue Version online?


superchatti - Mo 21.07.03 13:46
Titel: Neue Version online?
Wie kann ich überprüfen ob eine neue Version meines Programmes im Internet bereit steht (durch mein Programm!)??

Bräuchte die Antwort


Anonymous - Mo 21.07.03 14:15

da gibt es doch eine menge von möglichkeiten...

- exe datei prüfen
- versiondatei auf dem server prüfen...dann müsstest du wohl immer
wenn es eine neue version gibt diese datei mit hochladen

diese dann einfach runterladen und schauen ob version neuer wie die in deinem programm...fertig....


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
nmhttp1.get('http://url.de/version.txt');

{wenn fertig dann}

memo1.lines.loadfromfile('version.txt');
if memo1.lines[0] > 1 then .....
else
......


superchatti - Mo 21.07.03 14:36

Ist nmhttp1 eine extra Komponente??

//Edit:

Hat sich schon erledigt, aber wie lade ich die Datei dann runter??


matze - Mo 21.07.03 19:36

nimm doch indy kompos, dann kannst du folgendes machen:

Delphi-Quelltext
1:
2:
var version:string;
version := idhttp1.get ('http://deineseite/latestversion.txt')

Die latestversion.txt kann dann so aussehen:

Quelltext
1:
1.2                    

du sollstest in deinem progi noch ne konstante haben, die die verison deiner EXE beinhaltet. dann kannste supersimpel die versionsnummer prüfen.


superchatti - Mo 21.07.03 19:38

Ja..
Und wie lade ich dann die neue EXE runter??


Anonymous - Mo 21.07.03 19:57

Machs doch einfach so....

Du prüfst die Version mit


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var version:string
version := idhttp1.get ('http://deineseite/latestversion.txt');

procedure TForm1.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
if version > versionsvariable then downloadnow() else ShowMessage('Keine neue Version vorhanden!');end;

end;


und dann lädst du die Datei runter:




Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
Label1.Caption:=idHttp1.url.Document+' ('+inttostr(AWorkCount div 1024)+' kB von '+inttostr(IdHTTP1.Response.ContentStream.Size div 1024)+' kB)';
Gauge1.Progress:=AWorkCount*100 div IdHTTP1.Response.ContentStream.Size;
application.ProcessMessages;
end;

procedure downloadnow();
var Datei: TFIleStream;
      woher,wohin: String;
begin
  woher:='http://www.deineseite.de/datei.exe'//Quelle
  wohin:='C:\datei.exe'//Ziel
  Datei:=TFileStream.create(wohin,fmCreate);
  IdHttp1.Get(woher,Datei);
  Datei.free;

end;


Dazu brauchst du die indy HTTP und Antifreeze Komponente und ein Label sowie ne Gauge


superchatti - Mo 21.07.03 20:29

Warum eigentlich Antifreeze?


Anonymous - Mo 21.07.03 20:44

ganz einfach, ohne diese komponente würde deine Anwendung zwar den download vollziehen, aber du würdest davon nicht viel mitbekommen...sie würde erst nach dem download anzeigen was geschehen ist....z.B. wie viel schon runtergeladen ist u.s.w.


superchatti - Mo 21.07.03 20:46

Funtktioniert alles bestens!
Danke!

Resultat zu sehen unter:
HIER [http://dfd.members.easyspace.com/TextStudio.zip]
Dann auf die Info drauf und auf Überprüfen klicken!
Dann erklärt sich alles von selbst!


superchatti - Mo 21.07.03 20:51

DANKE!


Anonymous - Mo 21.07.03 20:52

sag mal, wo hast du dein icon her? ich suche noch xp icons zum runterladen, weiß aber nicht wo es die gibt


Anonymous - Mo 21.07.03 20:53

programm ist übrigens nicht schlecht, habs gerade getestet 8)


superchatti - Mo 21.07.03 21:10

Danke!
Das Icon hab ich hier her:
http://www.deskmod.com
Da gibts tausende von Icons![/url]


Anonymous - Mo 21.07.03 21:17

Danke


superchatti - Mo 21.07.03 21:25

Bitte Bitte!
In der Info ist das Resultat zum Thema und da stehen auch die Komponenten die ich benutze!
Würde mich über Bugberichte von dir freuen, sofern es noch Bugs gibt, wo ich mir sicher bin!


Anonymous - Mo 21.07.03 21:34

hi


1 bug: Wenn man auf Extras --> Programmoptionen klickt, dann überlagern sich beim wechseln des Pagecontrols alle Tabs...

2. bug: Wenn ich dein Programm schließe, dann kommt die abfrage ob ich bestimmte dateien noch speichern möchte...in diesem fenster sehe ich häßliche scrollbars....du würdest abhilfe schaffen indem du das fenster einfach ein bischen größer machst oder die scrollbars ausblendest..

Ausserdem kann ich dieses Fenster nicht durch klick auf X schließen...

Das wars schon :)

Sonst supi!

Alex[/u]


Anonymous - Mo 21.07.03 21:35

ach ja und schau mal in deiner info, da steht oben egine...das soll doch engine heißen oder?


superchatti - Mo 21.07.03 21:42

Danke, Danke!
Welches Windows benutzt du?
Denn bei mir und anderen PC's treten diese Fehler nicht auf!
Was genau meinst du mit überlagern sich die Tabs?


Anonymous - Mo 21.07.03 21:48

ich hab xp....


mit tabs überlagern meine ich...ich klicke auf den ersten reiter und sobald ich auf den zweiten reiter klicke sehe ich beide übereinander


superchatti - Mo 21.07.03 21:52

Hä??
Ich glaube ich weiß was du meinst!
Danke!
Ich änder es jetzt gerade
Muss eben noch uploaden!


superchatti - Mo 21.07.03 21:55

Du weißt ja wie man die neuste Version bekommt nicht war?
Jetzt kannste nämlich direkt das neue Feature überprüfen!
Du gehst so vor:
Hilfe->Info->Überprüfen(oder so ähnlich!)->Überprüfen->Downloaden


superchatti - Mo 21.07.03 21:56

Geht es jetzt??


Anonymous - Mo 21.07.03 21:57

ja jetzt gehts, aber noch was....


wenn die datei am downloaden ist, solltest du den button zum runterladen enabled auf false setzen....

sonst kommt es zu fehlern falls man nochmal drauf klickt :)


Anonymous - Mo 21.07.03 22:08

und man muss alle fenster nach dem download auf x schließen...das kannst du doch auch atomatisieren, da man ja eh die neue datei entpacken muss und dazu den alten editor schließen muss..


FriFra - Mo 21.07.03 22:23

matze hat folgendes geschrieben:
du sollstest in deinem progi noch ne konstante haben, die die verison deiner EXE beinhaltet. dann kannste supersimpel die versionsnummer prüfen.


Wozu den ne konstante? Wie wär's damit:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
function TForm1.GetVersion: string;
var
  VerInfoSize: DWord;
  VerInfo: Pointer;
  VerValueSize: DWord;
  VerValue: PVSFixedFileInfo;
  Dummy: DWord;
begin
  VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
  GetMem(VerInfo, VerInfoSize);
  GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
  VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
  with VerValue^ do
  begin
    result := IntTostr(dwFileVersionMS shr 16);
    result := result + '.' + IntTostr(dwFileVersionMS and $FFFF);
    result := result + '.' + IntTostr(dwFileVersionLS shr 16);
    result := result + '.' + IntTostr(dwFileVersionLS and $FFFF);
  end;
  FreeMem(VerInfo, VerInfoSize);
end;


superchatti - Di 22.07.03 13:44

Danke, Danke!
Werde ich machen!
Die Version hab ich in einer ini Datei hinterlegt!


matze - Di 22.07.03 16:13

du solltest dem user auch die möglichkeit geben, einen proxy server einzutragen !


superchatti - Di 22.07.03 16:21

Der benutzt automatisch die Einstellungen vom IE oder nicht?


Anonymous - Di 22.07.03 19:45

ne aber du kannst die proxyparams benutzen die bei deiner verwendeten idhttp komponente im object inspector zu finden ist.


superchatti - Di 22.07.03 20:25

Ahso! Danke!