Announcement

Collapse
No announcement yet.

Internet ?!:.... ja nein

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

  • Internet ?!:.... ja nein

    Hallo Leute,
    ich versuche seit langem ein Programm zu schreiben das alle 3 Minuten testet ob sich der User im Internet befindet. Wenn sich der User im Netz befindet soll den eine Procedure gestartet werden. z.B. EIn Update DIalog.
    Kann mir jemand einen Tipp geben wie ich das anstellen kan !?!

    Gruss Christian

  • #2
    Hallo Zero,<br>
    da Du ein Update-Dialog starten willst, gehe ich mal davon aus,<br>
    dass der User mit einer Deiner Anwendungen irgendetwas im Netz macht.<br>
    Wenn dem so ist, dann dreh den Spieß doch einfach um. <br>
    Schreibe einen Server, beim dem sich die Anwendung des Users beim Start anmeldet.<br>
    Schon weißt Du, ob einer User im Netz ist. Jetzt kann die Anwendungen mit dem Server<br>
    Versionsinformationen austauschen. <br>
    Vor langer Zeit habe ich sowas mal mit einem FTP-Server in unserem Intranet gemacht.<br>
    <pre>
    1. Auf dem FTP-Server liegt eine Textdatei, die die Versionsnummer enthält.
    2. Die Anwendung lädt per FTP die Textdatei und vergleicht die Versionsnummer mit seiner
    mit seiner eigenen Versionsnummer.
    3. Wenn die Versionsnummern nicht übereinstimmen startet die Anwendung ein Updateprogramm.
    dieses Porgramm übernimmt den Download und die Installation der aktuellen Version.
    Ich habe ein extra Download-Programm geschrieben, weil ich nicht in der Lage bin, eine laufende EXE
    auf der Platte zu überschreiben.
    4. Wenn die Installation beendet ist, startet das Update-Programm automatisch die Anwendung.
    </pre>
    <br>
    Jens Schumann<br&gt

    Comment


    • #3
      Ja , das habe ich soweit, nur das Problem ist halt jetzt, das ich irgendwie überprüfen will ob der user im netz ist und dann erst Der Dialog gestartet wird, das Programm ist ein teilprogramm von einem Großen Projekt was immer im Hintergrund läuft. Und bei jedem 10 Start soll es halt prüfen ibv der user im Netz ist und dann das haupt Programm mit der Ipdate Funktion starten.

      Hast du dafür eine Idee wie ich das überprüfen kann... und danach ausführe...
      Bin dir schonmla sehr dankbar für deine schnelle und Ausführliche Antwort.

      MfG
      Christia

      Comment


      • #4
        Hallo Zero,<br>die Antwort habe ich schon gegeben. Wenn sich der User an einem Server anmeldet, weißt Du ob er Online ist ist oder nicht. Nämlich alle z.Z. am Server angemeldeten User sind im Netz. Jetzt kann der Server eine kleine Datenbank führen, in der er vermerkt, wie oft sich der User angemeldet hat. Ist das 10'te mal erreicht sendet der Server dem Client einen kleines Kommando und schon kann der Client den Update-Dialog starten.<br>Jens Schuman

        Comment


        • #5
          Ja das stimmt aber ich wolle es gerne so machen, das der client den Befehl gibt ein Update vorzunehmen und nicht der server und dafür muss der User online sein, weil sonst dieser dumme Dialog " Wollen Sie sich in Netz wählen ( DFÜ ) " kommt...

          Comment


          • #6
            Tja Zero, solche "versteckten" WEB Zugriffe sind nicht einfach. Der korrekte Weg wurde von Jens schon beschrieben. Noch einfacher fände ich es wenn der User einfach einen Update-Schalter drückt und daraufhin das WEB nötigenfalls gestartet wird, genau so erwartet es der User und es IST transparent

            Comment


            • #7
              Hallo Hagen,<br>Dein Vorschlag, wäre für mich genau der richtige.<br>Ich arbeite im Bereich MIS (Management Informationssysteme). D.h. Meine User sind Manager. Was man mit denen so erlebt, kann man sich gar nicht vorstellen. Ich hääte meine Zweifel, das ein Manager auf die Idee kommt einen Update-Button zu klicken. Auf Grund meiner Erfahrung mit dieser "Kaste" habe das o.b. auotmatische Update eingeführt.<br>Jens Schuman

              Comment


              • #8
                Hallo Zero,<br>ich glaube, jetzt habe ich Dich verstanden. Die Anwendung beim User soll erkennen, ob eine Verbindung zum Internet besteht. Such mal im Forum nach InternetGetConnectedState.<br>Jens Schuman

                Comment


                • #9
                  Ja genau so soll es sein.. habe mich vieleicht komisch ausgedrückt ich suche mal !!!!

                  Comment


                  • #10
                    Hi Jens

                    Zeros Frage könnte erweitert werden, "Wie erkenne ich das eine Internet-Verbindung besteht, und falls eine besteht wie kann ich in den aktuellen Datenstrom unsichtbar meine Packete unterbringen ?".
                    Soll heissen der User soll auf keinen Fall was von dieser Datenübertragung mitbekommen, und ich kenne nur wenige Anwendungsfälle für solche Transaktionen.<br>

                    Ich auf jeden Fall hasse es wenn irgendeine Anwendung versucht OHNE meinen ausdrücklichen Befehl eine WEB Connection aufzubauen, oder eine bestehende auszunutzen. Bekomme ich solche Aktionen mit fliegt die Anwendung vom Rechner, z.B. einige Babylon Translater Versionen ! oder der RealPlayer, oder einige Norton Utilities.<br>

                    Ok, einer könnte sagen "dann installiere doch eine Firewall !" aber das wäre so als würde ich einen BMW kaufen und man müsste sagen "dann bau doch noch Reifen dran !".

                    Gruß Hage

                    Comment


                    • #11
                      Also ich habe mal nach der funktion gesucht aber irgend wie kommt nichts brauchbares bzw. kann ich nicht so richtig was damti anfangen.. hat jemand ein Beispiel für mich !!!
                      Gruss Christian

                      P.S ich will ja eigentlich nur wissen ob eine Verbindung Besteht oder nicht !!

                      Comment


                      • #12
                        Moin Zero,

                        probiers mal hiermit...

                        hier kannst prüfen, ob eine Verbindung besteht:

                        <PRE>
                        ...
                        function TForm1.IsConnectedToInternet: Boolean;
                        var
                        dwConnectionTypes: DWORD;
                        begin
                        dwConnectionTypes :=
                        INTERNET_CONNECTION_MODEM +
                        INTERNET_CONNECTION_LAN +
                        INTERNET_CONNECTION_PROXY;
                        Result := InternetGetConnectedState(@dwConnectionTypes, 0);
                        end;
                        ...
                        </PRE>

                        hiermit kannst Du eine Verbindung herstellen, sollte keine bestehen

                        <PRE>
                        ...
                        procedure TForm1.AutoDialUp();
                        var
                        dwConnectionTypes: DWORD;
                        begin
                        dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN +
                        INTERNET_CONNECTION_PROXY;
                        if not InternetGetConnectedState(@dwConnectionTypes, 0) then
                        // not connected
                        if not InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE or
                        INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) then
                        begin
                        StatusBar1.Panels[1].Text := 'Verbindungsfehler';
                        end
                        else
                        StatusBar1.Panels[1].Text := 'Verbunden';
                        end;
                        ...
                        </PRE>

                        Gruß
                        Domini

                        Comment


                        • #13
                          Hallo Dominik,

                          ich habe ein Problem mit InternetGetConnectedState.
                          Ich bekomme immer TRUE als Result, egal ob ich online bin oder nicht.
                          Wenn ich InternetAutodial aufrufe passiert gar nix. Kannst Du mir helfen

                          Comment

                          Working...
                          X