Entwickler-Ecke
Internet / Netzwerk - Wenn Internetverbindung da ist, dann Seite öffnen! HiLF€
ex4ct - Mi 12.04.06 17:49
Titel: Wenn Internetverbindung da ist, dann Seite öffnen! HiLF€
Hallo,
Ich will möchte einen Programm machen das,
wenn eine Internetverbindung hergestellt wurde eine Internetseite im Browser öffnet!
Leider weis ich nicht wie ich das machen soll.
BsP:
Delphi-Quelltext
1: 2:
| if "internetverbindung da" then begin ShellExecute(0,NIL,'www.beispiel.de',NIL,NIL,SW_Normal); |
Fighter#1 - Mi 12.04.06 18:10
Versuch doch mit den Indys einen Ping zu senden, und wenn er zuück kommt öffnest du die page
//@ex4ct Mein Prog tut jetzt, auch mit Bild :-D
ex4ct - Mi 12.04.06 18:23
Das Programm soll nicht nur am anfang gucken ob eine Internetverbindung besteht.
Wenn keine Inet-Verbindung da ist soll es nach 10 sek wieder gucken.
-> Tut mir leid, ich bin noch ein Anfänger :-(
ex4ct - Mi 12.04.06 19:05
Hab jetzt eine gute Lösung gefunden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| uses WinInet;
procedure TForm1.FormCreate(Sender: TObject); begin if InternetGetConnectedState(nil, 0) then begin Edit1.Text := 'ONLINE'; end else begin Edit1.Text := 'OFFLINE'; end; end; |
Aber der soll halt wenn keine VErbindung da ist nach 10 sek wieder gucken!
Watsch - Mi 12.04.06 19:15
Pack doch den Internet-Check in das OnTimer-Ereignis der Timer-Komponente.
Intervall = 10000 (<- entspricht 10 Sek.)
ex4ct - Mi 12.04.06 19:21
Watsch hat folgendes geschrieben: |
Pack doch den Internet-Check in das OnTimer-Ereignis der Timer-Komponente.
Intervall = 10000 (<- entspricht 10 Sek.) |
Cool es geht, danke dir!
ex4ct - Mi 12.04.06 19:57
Watsch hat folgendes geschrieben: |
Pack doch den Internet-Check in das OnTimer-Ereignis der Timer-Komponente.
Intervall = 10000 (<- entspricht 10 Sek.) |
Hmmm...das geht doch nicht!
Wenn ich z.B. die ganze zeit online bin, dann öffnet das Programm doch jede 10 sekunden die Seite!:S:S
Born-to-Frag - Mi 12.04.06 20:05
Dann deklariere eben noch eine Boolean Variable und setze diese auf True wenn du die Seite geöffnet hast und öffne nur eine Seite wenn sie auf False steht
greetz
Born-to-Frag - Mi 12.04.06 20:11
ex4ct hat folgendes geschrieben: |
Hab jetzt eine gute Lösung gefunden:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| uses WinInet;
procedure TForm1.FormCreate(Sender: TObject); begin if InternetGetConnectedState(nil, 0) then begin Edit1.Text := 'ONLINE'; end else begin Edit1.Text := 'OFFLINE'; end; end; |
Aber der soll halt wenn keine VErbindung da ist nach 10 sek wieder gucken! |
Die lösung ist sehr schlecht, funktioniert nämlich nicht bei Leuten die hinter einem Router sind..
ex4ct - Mi 12.04.06 20:25
Ich habe keinen Router, aber bei mir funktionierts!
Born-to-Frag - Mi 12.04.06 20:25
ex4ct hat folgendes geschrieben: |
Ich habe keinen Router, aber bei mir funktionierts! |
Bei Leuten die hinter einem Router sind funktioniert es aber nicht :roll:
EDIT: Ja, ich habe beim ersten Edit ein 'nicht' zuviel gesetzt weil ich dachte da fehlt eins :P
ex4ct - Mi 12.04.06 20:35
Born-to-Frag hat folgendes geschrieben: |
Dann deklariere eben noch eine Boolean Variable und setze diese auf True wenn du die Seite geöffnet hast und öffne nur eine Seite wenn sie auf False steht
greetz |
Das mit dem Boolean hab ich nicht ganz verstanden könntest du hier einen kleinen Beispiel geben?
Born-to-Frag - Mi 12.04.06 20:50
ex4ct hat folgendes geschrieben: |
Das mit dem Boolean hab ich nicht ganz verstanden könntest du hier einen kleinen Beispiel geben? |
Deklariere eine globale Variable (da wo steht "Form1: TForm1"). Nennen wir sie 'geoeffnet'.
Delphi-Quelltext
1: 2: 3: 4:
| var Form1: TForm1; ... Geoeffnet: Boolean = False; |
Und so öffnest du die Seite dann:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if (InternetGetConnectedState(nil, 0)) and (not geoeffnet) then begin Geoeffnet := True end else ShowMessage('ScheissDieWandAn'); |
ex4ct - Mi 12.04.06 21:10
Aha, ist ja eigentlich leicht...danke an alle die mit geholfen haben!
Born-to-Frag - Mi 12.04.06 23:40
Da hast du wohl Recht, Ping ist aber IMHO doch ein bisschen zuverlässiger als InternetGetConnectedState..
greetz
Narses - Do 13.04.06 09:35
Moin!
Born-to-Frag hat folgendes geschrieben: |
Ping ist aber IMHO doch ein bisschen zuverlässiger als InternetGetConnectedState |
Sorry, aber einen Ping abzusetzen ist das allerletze... :| ;) (ist nicht persönlich gemeint!) Ich erinnere an den Router mit dial-up-connection aus o.g. Quelle :arrow: der wählt dann ein, statt zu melden, ob er eingewählt ist... :gruebel:
cu
Narses
Fighter#1 - Do 13.04.06 10:31
OK ganz einfach:
einfach mit der ClientSocket Komponente den Host auf die Google IP und Port auf 80 setzen.
dann schick im OnConnect ereignis ein Sendtext an google, mit Try Except.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| ..Onconnect ... begin Try begin ClientSocket1.Socket.SendText('Hallo ist da wer?'); online:=True; end; except online:= False; end; ClientSocket1.CLose; end;
... Dein Timer begin If error = True Then begin Timer1.Enabled:=False; end;
end; |
Narses - Do 13.04.06 10:49
Moin!
Fighter#1 hat folgendes geschrieben: |
OK ganz einfach:
einfach mit der ClientSocket Komponente den Host auf die Google IP und Port auf 80 setzen.
dann schick im OnConnect ereignis |
:roll: Nix einfach, gleiches Problem: es wird eine Verbindung aufgebaut, wenn keine besteht, statt zu melden, ob eine besteht... :|
Leute, ES GEHT EINFACH NICHT, der Rechner kann nicht selbst zweifelsfrei herausfinden, ob er online ist! :mahn:
cu
Narses
Fighter#1 - Do 13.04.06 10:53
Bitte alles durchlesen!
wenn man text hinsendet und er findet google nicht dann ruft er die Eception sofort aus.
Getestet!
Mit Router :-D
Narses - Do 13.04.06 11:14
Moin!
Fighter#1 hat folgendes geschrieben: |
Bitte alles durchlesen! |
Ja, genau, und zwar
hier [
http://www.marian-aldenhoevel.de/dojo/internet.html]. :lol:
Fighter#1 hat folgendes geschrieben: |
wenn man text hinsendet und er findet google nicht dann ruft er die Eception sofort aus. |
Nochmal, gaaaanz langsam: ich habe einen Router, der wählt bei Bedarf ins Internet ein (vielleicht ist es dir nicht aufgefallen, weil deine Eltern für dich bezahlen: aber Internetnutzung kostet Geld! auch Flatrates kosten übrigens Geld, so nebenbei), wenn kein Bedarf besteht, trennt er die Verbindung, damit keine Gebühren anfallen.
Jetzt kommt deine totsichere Methode, um festzustellen, ob mein PC "im Internet" ist: mein Router wählt sich ein und deine Methode sagt: JA, SUUPER, IM INTERNET! Dabei war das vorher gar nicht so... :evil: und Geld hat´s auch noch gekostet... :twisted: und jetzt rate mal, wie ich das finde... :puke:
Fighter#1 hat folgendes geschrieben: |
Getestet! Mit Router :-D |
Ich glaub´s dir ja, aber eben nur bei dir; oder willst du behaupten, alle Benutzer dieser Erde haben den gleichen PC/Router/Internetverbindung wie du... :gruebel: ;)
cu
Narses
DelphiAnfänger - Do 13.04.06 12:12
wenn ein programm einen Befehl sendet einer internetseite einen text zu schicken geht der text an der router der sich dann automatisch einwählt...
//EDIT: nich gesehen dass schon ne Sweite seite da iss :oops:
Born-to-Frag - Do 13.04.06 12:21
Das kann man ja beim Router einstellen ob er automatisch einwählt..
Ich habe ja auch nicht gesagt das es nicht so ist ;) :P
greetz
Fighter#1 - Do 13.04.06 12:46
Aber es ist doch noch viel besser, wenn der Router sich einwählt.
Es ist doch ex4ct's Idee das eine Internetseite aufgeht.
Und so wäre doch alles Gut, er schickt text, Router spingt an, Internetseite geht auf.
Narses - Do 13.04.06 13:05
Moin!
Fighter#1 hat folgendes geschrieben: |
Aber es ist doch noch viel besser, wenn der Router sich einwählt. |
:nixweiss: Hallo... ? :gruebel: Ich fasse zusammen: DEIN PROGRAMM legt fest, wann ICH GELD BEZAHLEN MUSS :!:
Merkst du was... :eyecrazy:
cu
Narses
Fighter#1 - Do 13.04.06 20:30
Ohh je, worauf ich hinaus will ist, das es sein Ziel ist eine Internetseite zu öffnen!
Nun sage mir bitte wie das gehen soll ohne zu blechen.
Prüfen ob er Online oder Offline ist will er doch nur das nicht InternetExplorer Oder Firefox aufgeht und sagt : ...Seite nicht gefunden. (Oder irgendwie sowas).
DarkLord05 - Fr 14.04.06 01:47
Sein Programm kann ja vorher ne Abfrage machen ob die Seite geöffnet werden soll oder nicht. Damit der Benutzer, also du, weißt das du - eventuell - Geld bezahlen musst.
Und nochmal zu der Sache mit Google.de. Wenn (was wirklich sehr unwarscheinlich wäre :D ) der Server von Google.de ausfallen würde, bekommst du auch keine Antwort :wink:
Narses - Fr 14.04.06 18:31
Moin!
Fighter#1 hat folgendes geschrieben: |
Ohh je, worauf ich hinaus will ist, das es sein Ziel ist eine Internetseite zu öffnen!
Nun sage mir bitte wie das gehen soll ohne zu blechen. |
Wenn ich eine Internet-Seite aufrufe, weiß ich, dass das (potentiell) Geld kosten wird, darum geht es doch gar nicht. Es geht um:
Fighter#1 hat folgendes geschrieben: |
Prüfen ob er Online oder Offline ist will er |
Das geht nicht, da das ja vor einer Kontaktaufnahme passieren soll. Es ist nicht möglich, den Verbindungszustand zu ermitteln, zweifelsfrei und kostenneutral. :mahn:
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!