Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Online Update (https://www.delphipraxis.net/106994-online-update.html)

PhilmacFLy 20. Jan 2008 14:24


Online Update
 
Kann man in Delphi ein Programm so progrmmieren das es Online schaut ob eine neuere Version verfügbar ist ?

Larsi 20. Jan 2008 14:27

Re: Online Update
 
ich möchte ja jetzt nicht so hart sein weil dies dein erster thread ist aber benutze bitte erst die such funktion der Delphipraxis.

vorschlag: downloade erst ne textdatei wo alles wie version und downloadlkink drinnen steht und wenn die version neuer ist dann wird gedownloadet

API 20. Jan 2008 14:27

Re: Online Update
 
Hallo

Durchsuche das Forum mal nach Online Update.

dominikkv 20. Jan 2008 14:29

Re: Online Update
 
Zitat:

Zitat von PhilmacFLy
Kann man in Delphi ein Programm so progrmmieren das es Online schaut ob eine neuere Version verfügbar ist ?

Ganz einfach: Ja

PhilmacFLy 20. Jan 2008 14:46

Re: Online Update
 
Toll das hab ich gemacht aber nix gefunden vllt bin ich ja zublöd.

Larsi 20. Jan 2008 14:51

Re: Online Update
 
ich hab dir doch grob beschrieben wi dus machen kannst.

PhilmacFLy 20. Jan 2008 15:01

Re: Online Update
 
Ja sry danke.
jetzt muss ich nur noch finden wie man ne datei runterläd ^^

Matze 20. Jan 2008 15:02

Re: Online Update
 
Schau mal nach Delphi-Referenz durchsuchenURLDownloadToFile aus der Unit URLMon.

PhilmacFLy 20. Jan 2008 15:10

Re: Online Update
 
Danke
Edit: muss ihc da was bei den uses hinzufügen ?

Matze 20. Jan 2008 15:13

Re: Online Update
 
Zitat:

Zitat von Matze
[...] aus der Unit URLMon.

Diese Unit musst du dann natürlich bei den uses einfügen.
Aber das würde dir sicher auf die Delphi-Hilfe oder die Suchfunktion des Forums verraten. ;)

Larsi 20. Jan 2008 15:40

Re: Online Update
 
also ich kann dir das ganz ja nochmal erklären:

Zuerst downloadest du ja die Textdatei:
Delphi-Quellcode:
uses
  URLMon;

procedure TForm1.Button1Click(Sender: TObject);
var
  Datei,Ziel:PChar;
begin
  Label1.Caption := 'Download gestartet';
  try
    Datei := 'http://www.DieSeite/DieDatei.zip';
    Ziel := 'C:\Windows\Desktop\DieDatei.zip';
    UrlDownloadToFile(nil, Datei, Ziel, 0, nil);
    Label1.Caption := 'Download beendet';
  except
    showmessage('Download abgebrochen');
  end;
end;
end;
(entweder so oder über die Indys)
Bei "Datei" die Textdatei auf deinem FTP- Server eintragen, bei "Ziel" das Ziel^^
Ich würde dir empfehlen, die Datei im Ordner deiner Anwendung zu downloaden. Und vergiss nicht ,sie am Schluss wieder zu löschen, den sonst entsteht Datenmüll.
Die Textdatei würde ich wiefolgt aufbauen:
1. Zeile = Die Version würde ich hier so ausgeben(Version 2.0 = 20, weil 20 ne Integer Zahl ist bei der du mit einer Abfrage ja ganz leicht gucken kannst welche größer oder kleiner ist!
2. Zeile = Die Version mit Punkt in der Mitte
3. Zeile = Downloadlink
4. Zeile = Beschreibung oder eventuelle Hinweise

Beispiel (Inhalt der Textdatei):
Delphi-Quellcode:
20
2.0
[url]http://deinFTPServer/UpdateDatei.txt[/url]
Tolles Programm was in dieser Version auch noch funktioniert oder so^^
Dann noch in deinem Programm die Textdatei öffnen:
Delphi-Quellcode:
var
List: TStrings;
begin
List := TStringList.Create;
try
  List.LoadFromFile('C:\UpdateDatei.txt');
  if List.Count>0 then
    Edit1.Text:=List[0];
finally
  List.Free;
end;
end;
das Edit1.text := List[0] list die erste Zeile aus wenn du da [1] reinschreibst halt die 2. Zeile und immer so weiter.

Wenn du das so für alle vier Zeilen gemacht hast, steht im ersten Edit die Version im 2. Edit die Version mi nem Punkt in der Mitte zur Übersicht und so weiter...
Dann kannst du ja ein Label auf dein Form ziehen in dem z.B.: 31(für Version 3.1) drinnen steht und das vergleichst du dann mit Edit1.text:

Delphi-Quellcode:
if StrToInt(Edit1.text) > StrToInt(Label1.caption) then
ShowMessage('Es ist ein Update möglich!')
else
ShowMessage('Es ist kein Update nötig! Die Software ist auf dem neusten Stand'!);
wenn ein Update möglich ist dann machst du wieder die Download Procedur mit dem Link aus deiner gedownloadeten Textdatei!

Was ich dir noch empfehlen kann ist ein Vorschau- Fenster wo noch Beschreibung und so drinnen steht.
Außerdem sollte die alte Version deines Programmes dann selbst gelöscht werden nach Nachfrage!

Solltest du noch Fragen haben, frag Sie einfach^^

Hoffe ich konnte dir und vielleicht auch noch ein paar Anderen damit helfen :)

MFG Lars Wiltfang

2.2

PhilmacFLy 20. Jan 2008 15:49

Re: Online Update
 
Danke aber ich denke ich weiss schon wie ichs mache, und zwar werd ich eine ini Datei hochladen und eine ini datei hab ich im programm ornder da stehen die Version nummern drin. Sollten die nicht über ein stimmen frägt das programm ob man das programm updaten will wenn ja dann wird der browser geöffnet und man zum download link gesickt (der steh auch in der hochgeladenen ini.

Matze 20. Jan 2008 15:51

Re: Online Update
 
Was ist nun dein Problem?

Hier noch ein paar Links, da sollte alles nötige erklärt sein:

Tutorial für OnlineUpdate
update eures eigenen Programms: vorgehensweise

Über Hier im Forum suchenShellExecute kannst du natürlich auch Links mit dem Standardbrowser aufrufen.

Larsi 20. Jan 2008 15:52

Re: Online Update
 
obs ne ini oder txt datei ist ist ja egal :)

obwohl ich ne interne updatefunktion besser finde, als wenn imer auf ne website geleitet wird

Larsi 20. Jan 2008 15:53

Re: Online Update
 
@Matze: Er hatte doch gar kein Problem sondern hat sich nur indirekt auf meine Anleitung bedankt :) sehr indirekt :(

PhilmacFLy 20. Jan 2008 15:56

Re: Online Update
 
Ok dann machs ich jetzt direkt danke an alle die mir aus meiner blödheit herraus geholfen haben.

k4ni 20. Jan 2008 15:56

Re: Online Update
 
Hey, ich mach gerade fast das gleiche. Aber ich halte die version in einer Datenbank fest MySQL, was ich persöhnlich besser finde.

Matze 20. Jan 2008 15:57

Re: Online Update
 
@Larsi: Hm, stimmt. :stupid: Naja, die Links sind evtl. für andere hilfreich.

Und ich bitte dich wieder, zukünftig deinen letzten Beitrag zu editieren, wenn du etwas ergänzen möchtest und noch niemand nach dem Beitrag eine Antwort geschrieben hat. Doch das habe ich meines Wissens bereits einige Male zu dir gesagt.

@k4ni: Das eleganteste wäre es natürlich, wenn ein PHP-Skript, das man vom Programm aus aufruft, die Dateiversion der Exe/des Archivs online ermittelt und als String zurückgibt. Dann muss man bei einer neuen Version für die Update-Funktion nichts weiter machen, als die neue Anwendung auf den Server zu laden.

k4ni 20. Jan 2008 17:48

Re: Online Update
 
Gute idee :) Diesen weg benützen die meisten GameGuard's. WErd ich mal versuchen. Danke

SaFu 13. Feb 2008 12:58

Re: Online Update
 
He das ist wirklich eine sehr einfache Methode um Updates fürs Programm anzubieten
Find ich gut und einfach

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz