Don El Greeko: ActiveX oder wie soll das möglich sein?

Hallo Leutz!

Ich bin derzeit an einem Programm am werkeln, welches man von seinem COmputer aus installiert und dann kann man seine Daten verwalten, protokollieren, archivieren.

Auf der Internetseite dieses Programmes wollte ich eine sogenannte Updatefunktion machen wie man es von update.microsoft.com kennt.

Gibt es eine Möglichkeit sowas auch zu machen???

  1. Hi,

    du kannst doch deinem Programm (in was für einer Sprache du es auch immer schreibst) sagen, es soll beim Start auf http://deineupdatelocation.tld/ schauen und von da die neusten Komponenten runterladen in das eigene Programmverzeichnis kopieren und  sich dann neu starten.

    Ciao, Frank

    1. Moin Moin !

      du kannst doch deinem Programm (in was für einer Sprache du es auch immer schreibst) sagen, es soll beim Start auf http://deineupdatelocation.tld/ schauen und von da die neusten Komponenten runterladen in das eigene Programmverzeichnis kopieren und  sich dann neu starten.

      ... das sollte es höflicherweise aber nicht ohne Nachfrage machen! Ein Programm, das vor dem Start immer erst den Update-Server "anruft", wird ohne Internet-Verbindung nicht laufen, einem Nicht-Flatrate-User enorme Kosten verursachen, und oft ist ein Update schlicht nicht gewünscht.

      Beim ersten Start sollte das Programm fragen, wie der User es mit dem automatischen Update hält:
        ( ) nie automatisch updaten, nur manuell
        (*) nur gelegentlich nach Updates suchen und dann fragen
        ( ) immer nach Updates suchen und dann fragen
        ( ) immer automatisch updaten

      Diese Einstellungen sollte man später einfach ändern können.

      Automatische Updates gibt es nicht nur in Windows. Viele Anwendungen (z.B. Real Player, Mozilla, iTunes) haben ähnliche Funktionen. ActiveX ist dafür völlig unnötig, MS macht es sich damit nur leichter, das Windows-Update-Programm auf dem neuesten Stand zu halten. Eine Anwendung muß eigentlich nur eine HTTP-Verbindung zu einem Server herstellen, die Windows-API bietet dafür sogar schon fertige Funktionen (sie sind technisch gesehen eigentlich Teil des IE, und daher kennen sie auch alle notwendigen Proxy-Einstellungen usw.). Der Server übermittelt eine Text-Datei (einfache Liste, CSV, XML, INI, whatever) mit dem Soll-Zustand, den Ist-Zustand kennt die Anwendung. Aus der Differenz kann die Anwendung ermitteln, welche Dateien herunterzuladen und auszutauschen sind. Auch dieser Download geht über die API-Funktionen. Ein Browser wird dafür gar nicht benötigt, nur eben die Routinen für HTTP-Kommunikation.

      Auch auf anderen Systemen ist so etwas problemlos möglich, HTTP ist ein relativ einfaches Protokoll, das in vielen verschiedenen Sprachen für viele verschiedene Systeme implementiert ist. Man muß nur irgendwo eine passende Library mit einem HTTP-Client auftreiben. Microsoft liefert sie bei Windows als Teil des IE mit, z.B. hat Perl mit LWP einen sehr guten HTTP-Client, der auf fast allen Plattformen verfügbar ist. (Und ja, man kann mit Perl schnelle und große Anwendungen schreiben, die sich über HTTP selbst updaten können.) Auch Java hat entsprechende Klassen.

      Alexander

      --
      Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
      1. Hi!

        1. Das Programm muss ans Internet gebunden sein. Wenn das Programm gestartet ist, muss der User im Internet sein, gibt ein paar Sicherheitsmerkmale, sind aber total nachvollziehbar, werde ich aus Sicherheitsgründen nicht nachsagen, werde euch den Link irgendwann geben wenn es groß genug ist.

        Naja, von daher werden es nur Flat-Rate User besitzen.
        Was ich mich aber noch frage ist, welche API's erlauben einer HTP Seite den IST-Zustand zu senden?

        Okay, das HTTP Protokoll ist sehr simpel, aber beispielsweise... Ich frage mich, wenn ich auf windowsupdate.microsoft.com gehe, dann steht dort ja "Möchten Sie dies oder das Installieren.... "JA; NEIN, Sicherheitszertifikat"

        So, und wenn ich auf Ja klicke startet der auf einmal ein Programm. Und das nachzubauen ist meine Frage. Sagen wir jetzt mal blöd, bei Dialern funzt das ja aber auch. Dort gibt man irgendwat ein, und plötzlich, ratterbumm, hat man einen Dialer. Und dieses Prinzip wollte ich für meine Updatefunktion nutzen.

        1. Hi,

          Dank an Alexander Foken für die erweiterte Erklärung :-)

          Die Installation von Windows Update ist eine (afaik) ActiveX
          Komponente, die gestartet wird (wenn schon installiert) um
          der Website deinen IST-Status zu senden. Nur warum als ActiveX ?
          Weil du als Nutzer den Umweg über den Browser gehen _willst_.
          Die Website benötigt ja irgendwen, der ihr den IST-Status mitteilt.
          Diesen Umweg kannst du dir aber auch sparen in dem du dein Programm
          gleich direkt (mit Verbindungscheck und Benutzerrückfrage - falls
          von Interesse) bei einer entsprechenden Url anfragen lässt.

          Deinen IST-Status kannst du dabei zb. in ein XML Dokumnent packen
          (z.b. eine Liste der Versionen aller installierten Libraries oder
          Assemblies) und per HTTP-POST oder als SOAP Message an die URL
          senden.

          Was du ausführst, was dir den Dialer auf deine Festplatte
          installiert, ist ein Installationsprogramm, welches die Dialer-
          Software vom Internet lädt und genügend Rechte besitzt, bei dir
          auf deinem Rechner Software zu installieren. Diese Installations-
          Routine ist in ein oft in ActiveX Objekt verpackt.

          Okay, ich hoffe, diese meine und Alexanders Infos bringen dich
          etwas weiter.

          Ciao, Frank

          1. JA! DANKE SEHR!!