| Autor |
Beitrag |
Logi5
      
Beiträge: 20
|
Verfasst: Sa 12.02.05 18:57
Liebe Delphi-Gemeinde,
ich beschäftige mich seid einiger Zeit mit einem Problem.
Ich suche eine funktion, die eine Variable auf true oder false setzt, je nach dem, ob der rechner im Web ist oder nicht.
Ich habe bereits eine Funktion, jedoch hat diese den Nachteil, das sie eine Fehlemeldung erzeugt, wenn der Rechner nicht online ist.
Kann mir da jemand weiterhelfen?
|
|
Sprint
      
Beiträge: 849
|
Verfasst: Sa 12.02.05 19:05
_________________ Ciao, Sprint.
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 12.02.05 19:11
das würde ich nicht sagen. habe mal einen source gesehen zum auflisten der netzwerkadapter, wenn der netzwerkadapter WAN eine ip hat is man auch online.
alternativ könnte man ja folgenden einfachen trick machen: einen host anpingen der immer online is wie z.b. www.google.com
kommt ein reply so hat man ne verbindung
|
|
Kidix
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 12.02.05 19:13
ja und wenn du dial on demand hast wählt er sich beim pingen erst ein und ist dann online....das geht also auch nicht!
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 12.02.05 19:15
achso, der anwender soll die überprüfung ned mitbekommen... ja dann wirds schon schwerer.
|
|
Sprint
      
Beiträge: 849
|
Verfasst: Sa 12.02.05 19:17
| retnyg hat folgendes geschrieben: | | wenn der netzwerkadapter WAN eine ip hat is man auch online. |
Tja, und wenn du deine Internet Daten über LAN von einem anderen PC/Server beziehst, dann bringt dir das auch nichts.
| Zitat: | | alternativ könnte man ja folgenden einfachen trick machen: einen host anpingen der immer online is wie z.b. www.google.com kommt ein reply so hat man ne verbindung |
Das kann aber den unschönen Nebeneffekt haben, dass das DFÜ Einwahlfenster aufspringt.
_________________ Ciao, Sprint.
|
|
Logi5 
      
Beiträge: 20
|
Verfasst: So 13.02.05 01:48
ok, ich kann also nicht sicher feststellen, ob der rechner im Internet ist.
Dann formuliere ich das ganze anders:
Das Programm soll eine funktion haben, die ei update runterläd. Ich schreibe die funktion einfach mal im Klartext
funktion ob online: Ja oder nein
wenn ja ( auch wenns nicht sicher ist) dann
lade Datei Update.zip vom Server www.irgendwas.de (wenn sie neuer ist, als die, die auf dem Rechner ist)
sollte dieses laden fehl schlagen, gebe keine Fehlermeldung aus, sondern beende das ganze einfach.
Das ganze könnte mit einem Timer alle 10 minuten oder so erneut gemacht werden
|
|
Sprint
      
Beiträge: 849
|
Verfasst: So 13.02.05 02:00
Das ist ja eine Frage, die schon manch ein Programmierer hatte. Ich würde in dein Programm ein Dialog machen, wo der Benutzer selber Einstellungen vornehmen kann. z.B. ob automatisch oder manuell nach Updates geschaut werden soll.
Beim ersten Aufruf von deiner Updatefunktion, würde ich eine MessageBox einbleden. Wo der Benutzer darüber informiert, das für die Suche nach einen Update eine Internetverbindung bestehen muss. Außerdem würde ich dieser MessageBox eine CheckBox verpassen. Damit der Benutzer die Möglichkeit hat, das beim nächsten Update diese MessageBox wieder erscheint oder es halt gleich weitergeht. Dann sieht dein Programm auch sehr professionell aus und der Benutzer freut sich, das er selber mit entscheiden darf.
_________________ Ciao, Sprint.
|
|
Kidix
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 13.02.05 11:39
Ehrlich gesagt.
Wenn dein Programm versuchen würde zu prüfen ob ich online bin und sich meine Verbindung dadurch automatisch einwählt würde ich dein prog sofort löschen und weitere schritte einleiten...
Machs mit nem dialog und gut!
Kidix
|
|
reepo2k
      
Beiträge: 138
WIN XP
Borland Delphi 7 Enterprise, Microsoft Visual C++ 6.0 Enterprise, Macromedia Dreamweaver 8
|
Verfasst: So 13.02.05 11:47
Wäre es nicht besser erst zu überprüfen, ob eine neue Version online ist und nur wenn eine neue Version verfügbar ist diese runter zu laden?
Würd nämlich viel Traffic werden, wenn das Programm bei jedem Start ne neue Version runterkädt.
MfG: reepo2k
|
|
Kidix
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 13.02.05 11:49
und ob er sich dabei auf der legalen ebene befindet mag ich bezweifeln...
ich sagte ja wenn sein programm erst meine verbindung aufbaut und dann auch noch autmatisch was runterläd würd ich anzeige erstatten!
|
|
Logi5 
      
Beiträge: 20
|
Verfasst: Mo 14.02.05 02:05
nu mal halblang...
jeder popelige Virenscanner updatet sich automatisch. Und Windows Updates kommen auch einfach so, wenn man die Funktionen nicht abschaltet. Hast du die schon alle Verklagt? *lol
die Funktion ist natürlich auch bei meinem Programm abschaltbar..
Jede .exe auf einem Computer stellt eine potentielle Bedrohung da. Also was sollen diese Unterstellungen?
|
|
oPPi
      
Beiträge: 66
MS Win 7 Pro, WinXP Pro
D3 Pro, TurboDelhi, Kylix 3 Pro
|
Verfasst: Mo 14.02.05 13:18
Hy wie wär's mit sowas:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| Uses WinInet;
function IsConnectedToInternet : boolean; begin result := (InternetGetConnectedState(nil, 0)) end;
procedure TForm1.Button1Click(Sender: TObject); begin if IsConnectedToInternet then ShowMessage('Verbunden.') else ShowMessage('nicht Verbunden'); end; |
gefunden bei: www.SwissDelphiCenter.ch
Du kannst natürlich anstatt ShowMessage auch ein Editfeld / CheckBox oder ähnliches verwenden.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 14.02.05 13:48
Es gibt keine 100 prozentige Lösung. Siehe hier: www.marian-aldenhoev...e/dojo/internet.html
|
|
wham1010
      
Beiträge: 17
Win XP Prof.
D6 Pers
|
Verfasst: Mi 27.07.05 13:48
Also, bei dem hier schreibt er mir IMMER "Nicht verbunden" hin - obwohl ich definitiv mit dem Internet verbunden bin!
(Router + Breitband)
oPPi hat folgendes geschrieben: | Hy wie wär's mit sowas:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| Uses WinInet;
function IsConnectedToInternet : boolean; begin result := (InternetGetConnectedState(nil, 0)) end;
procedure TForm1.Button1Click(Sender: TObject); begin if IsConnectedToInternet then ShowMessage('Verbunden.') else ShowMessage('nicht Verbunden'); end; |
gefunden bei: www.SwissDelphiCenter.ch
Du kannst natürlich anstatt ShowMessage auch ein Editfeld / CheckBox oder ähnliches verwenden. |
|
|
blaueled
      
Beiträge: 133
Win XP
D5
|
Verfasst: Mi 27.07.05 18:08
nimm einen TClientsocket und als IP www.google.de (oder was für dich passt) port 80 und
bei einem Fehler inet := false und den Errorcode auf 0 setzen.
bei Verbindung inet := true und verbindung beenden.
Arne
|
|
Experience1986
      
Beiträge: 192
Win XP Pro SP2
Delphi 7
|
Verfasst: Mi 17.08.05 15:11
Hi,
das mit dem ClientSocket hab ich noch gar nicht in betracht gezogen. interessante und einfache idee.
Der Code der oben schonmal gepostet wurde:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| function IsConnectedToInternet : boolean; begin result := (InternetGetConnectedState(nil, 0)) end;
procedure TForm1.Button1Click(Sender: TObject); begin if IsConnectedToInternet then ShowMessage('Verbunden.') else ShowMessage('nicht Verbunden'); end; |
Kan bei Router nicht funktionieren, da dieser Code nur prüft ob eine DFÜ verbindung besteht.
|
|