![]() |
Internet Programmupdate durchführen - Wie wirds gemacht ?
hallo leute,
ich will in mein programm mit einer internet update funktion ausstatten, wie sie diverse aktuelle programme bieten. dazu habe ich folgende üeberlegungen angestellt. zielgruppe der anwender: breitband internetuser (dsl,kabeluser usw.) die ohne externen router connecten (fritzdsl, usb dslmodem, dfü-nutzer, pc als router) profil der anwendung: internetmonitor mit auto. reconnection, ip und dns anzeige, internetspeed anzeige, dyndns support, cooler skin :-) der updateprocess anforderungen: 1. fortschrittsanzeige (nicht unbedingt benoetigt , aber waere schoen wenn) 2. verschluesselte uebertragung der binary (nur ganz einfacher algoritmus -> kein klartext uebertragung) 3. passwortschutz für update des client (update ist nur von registrierten lizenzen erlaubt, regdaten sind in win regisrtry oder hardcodiert im client) 4. üebertragung des binary wenn moeglich über port 80 HTTP (wie passwortgesicherter webdownload, weil's spaeter eventuell ueber proxy laufen soll , muss); 5. updateroutine und programm sollen in einer exe-datei sein. (hoffe dat geht ohne groeßeren aufwand) 6. der client soll eine bestaetigungid senden, das das programmupdate korrekt durchgeführt wurde mit versionsid 7. Changelog soll dem nutzer des clients auf wunsch angezeigt werden (ueber memo oder so) um schritt 2, 6 und 7 kümmere ich mich selbst aber zu schritt 3, 4 und 5 haette ich fragen. zu punkt 5 haett ich folgende ueberlegung. bestandteil der Anwendung soll eine update.exe datei sein, die im client eingebunden ist. stelle mir den updateprocess etwa so vor: 1. client fragt uber einen timer regelmaessig bei irgendeiner inet resource nach, ob neue version verfügbar ist und stoesst den updateprocess an 2. client startet die eingebundene update.exe per shellexecute 3. !hier knackpunkt meiner überlegung! gestartete update.exe beendet clientanwendung, ersetzt client binary und startet client anwendung neu. 4. update.exe vergleicht programm version mit internet resource, und sendet positive oder negative update bestaetigungs id, update.exe beendet sich selbst. -> mein problem ist, das ich nicht weis, ob es moeglich ist , das eine aus einer anderen anwendung heraus gestartete anwendung (in dem fall update.exe , die in erstere anwendung (client.exe) eingebunden ist, das ueberhaupt tun kann. bzw. auch ob -> update.exe die neue client.exe überhaupt starten kann, weil update.exe ja als instanz aktiv ist, aber auch bestandteil der neu zu startenden clientanwendung ist zu punkt 3 und 5 da diese beiden punkte zusammenspielen,habe ich dazu noch keine konkreten vorstellungen. denkbar waeren folgende konstellationen_ client/server dateitausch auf byte-ebene (will ich eigentlich nich machen, hab kein bock auch noch ne paketverwaltung zu schreiben) ftp verbindung webdav verbindung einfacher webdownload, jedoch dann ohne passwortabfrage beim downloaden (passwortcheck wuerde dann erst bei updateprozess erfolgen (mmmhhh. ob dat sicher ist im bezug auf reverse energeering?) wie habt ihr so etwas realiesiert? oder wie würdet ihr sowas machen? wuerde mich sehr ueber anregungen, ideen, kommentare und vorschlaege dazu freuen. bis denne euer Richard |
Re: Internet Programmupdate durchführen - Wie wirds gemacht
na nu interessierts keinen ?
*PUSH* |
Re: Internet Programmupdate durchführen - Wie wirds gemacht
Pushen ist erst nach 24h erlaubt :wink:
Ich denke, die Antwort lässt auf sich warten, da das sicher kein leichtes Thema ist. air |
Re: Internet Programmupdate durchführen - Wie wirds gemacht
@air i know but, is nur noch 3,5 h hin, hoffe ihr seid nachsichtig mit mir :)
mir jukt es halt in fingern |
Re: Internet Programmupdate durchführen - Wie wirds gemacht
hi,
ich habe fast genau den kram in meinem aktuellsten Projekt umgesetzt. Muss jetzt noch zur uni und bin ab ca 14 uhr wieder da und poste dann ausführtlich Meine Lösung basiert auf MakeUpd.exe und update.exe von ![]() aber eines schon mal vorweg zu 5.1. Verwende keinen Timer. Der User soll selber entscheiden, wann das update gemacht wird... Gruß Ken |
Re: Internet Programmupdate durchführen - Wie wirds gemacht
@ Cenbells
hi du, erstmal danke für deine antwort. der nutzer soll selber entscheiden ich wollte nur so etwas wie bei vielen virenscannern drinn ist, also nen festgelegtes update interwall bieten. z.b. schau alle 3 stunden ob neue aktualisierungen verfügbar sind :stupid: |
Re: Internet Programmupdate durchführen - Wie wirds gemacht
So, da bin ich endlich. Hat etwas länger gedauert, als gedacht...
Zitat:
![]() Mittlerweile habe ich die "Progressbar" in meinem gesamten Programm verwendet und nur positives Feedback erhalten. Zitat:
Zitat:
Wie gesagt, damit du die Update.exe starten kannst, legst du sie eh am besten als file bereit. Und dann brauchst du sie nicht ins Programm integrieren. Lad dir also am besten das Zip von der Adresse, die ich im letzten Post angegeben hab und schau dir das mal an. Gruß Ken |
Re: Internet Programmupdate durchführen - Wie wirds gemacht
du könntest das ganze einfach auf einen webserver schmeißen und den download per .htaccess schützen.
die Client-Exe von der Update.Exe aus zu beenden dürfte auch kein Problem sein. Ich hab das ganze mal so gelöst das ich von der update.exe (heißt bei mir türlich anders) eine message an das hauptprogramm sende (dabei schick ich gleich mein handle mit). Die Hauptanwendung (client.exe) empfängt die windowmessage, speichert die daten, löst ein destroy aus und schickt dann eine Message zurück an die Update.exe. Somit weiß die update.exe das die hauptanwendung in ca. einer sekunden geschlossen ist (da speichervorgänge vor senden der message ausgeführt wurden). Und dann kann die update.exe die client.exe bequem mit derm download ersetzen. Nach Abschluss des Downloads einfach nur noch mit ShellExecute die Hauptanwendung wieder starten und danach die update.exe sich selbst schließen lassen. |
Re: Internet Programmupdate durchführen - Wie wirds gemacht
@cenbells
thx erstmal für deine antwort. werde mir das mal ansehen. über einen Browser soll dat ganze aber nich downloadbar sein. du weist ja was google & co alles indexieren! @SirThornberry hoert sich gut an, aber hast du bedacht, das die update.exe in die client.exe als resource eingebunden sein soll? funktioniert deine methode dann trotzdem? //edit// habe mir jetz erstma webspace besorgt :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 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