![]() |
Testen ob Internet-Verbindung besteht
Wie kann ich mein Programm prüfen lassen, ob eine Verbindung mit dem Internet besteht? Es soll dann angezeigt werden, ob eine Verbindung besteht, oder nicht.
|
Re: Testen ob Internet-Verbindung besteht
|
Re: Testen ob Internet-Verbindung besteht
Oder Du lässt im Hintergrund eine Seite aufrufen was aber nicht 100% ist da die Seite auch ausfallen kann.
|
Re: Testen ob Internet-Verbindung besteht
@chris01
das dort gezeigte Beispiel funktioniert überhaupt nicht! Wenn ich das so in mein Programm übernehme meldet sich der Compiler, dass der Befehl, der dort in der zweiten Zeile steht, nicht definiert ist. Was soll das? |
Re: Testen ob Internet-Verbindung besteht
ganz oben bei uses musst du das hier noch hinzufügen:
Delphi-Quellcode:
dann sollte es klappen.
WinInet
Edit: Aber bei mir zeigt es immer an, dass ich eine Verbindung habe, ob dies der Fall ist oder nicht. :gruebel: |
Re: Testen ob Internet-Verbindung besteht
Tut mir wirklich leid, dass ich mich nochmal melden muss, aber es funktioniert bei mir nicht (Delphi 3 Professionel)
Das ist mein Code und ich kann nicht kompilieren:
Delphi-Quellcode:
Wo ist der Fehler? Vielen Dank für eure Geduld :-D
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, WinInet; type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} function IsInternetConnected: Boolean; begin if InternetGetConnectedState(nil, 0) then begin Result := True; end else begin Result := False; end; end; end. [edit=Christian Seehase]Delphi-Tags korrigiert. Mfg, Christian Seehase[/edit] |
Re: Testen ob Internet-Verbindung besteht
Hallo,
welche Fehlermeldung erhälst Du denn? |
Re: Testen ob Internet-Verbindung besteht
Wie wär's hiermit:
Delphi-Quellcode:
nicht vergessen zuerst uses wininet; aufzunehmen.
procedure TForm1.Button1Click(Sender: TObject);
var lpdwFlags :PDWord; begin if IntenetGetConnectedState(lpdwFlags, 0)then begin checkbox1.Checked := (lpdwFlags^ and INTERNET_CONNECTION_MODEM) <> 0; checkbox2.Checked := (lpdwFlags^ and INTERNET_CONNECTION_LAN) <> 0; checkbox3.Checked := (lpdwFlags^ and INTERNET_CONNECTION_PROXY) <> 0; showmessage('Internet-Verbindung besteht !'); end; end; [edit=Christian Seehase] Delphi-Tags korrigiert. Mfg, Christian Seehase[/edit] |
Re: Testen ob Internet-Verbindung besteht
Moin Delphi-Padawan,
falls D3 InternetGetConnectedState nicht kennt, füg' das hier mal im Interface Abschnitt hinzu:
Delphi-Quellcode:
(dann kannst Du auch die unit wininet weglassen).
function InternetGetConnectedState(lpdwFlags : LPDWORD;dwReserved : DWORD) : longbool; stdcall; external 'wininet.dll';
|
Re: Testen ob Internet-Verbindung besteht
Versuchs einfach mal so:
Delphi-Quellcode:
Ist zwar mit registry funktioniert aber gut...
uses
StdCtrls, registry; function IsConnected: Boolean; var reg: TRegistry; buff: DWORD; begin reg := TRegistry.Create; Reg.RootKey := HKey_local_machine; if reg.OpenKey('\System\CurrentControlSet\Services\RemoteAccess', False) then begin reg.ReadBinaryData('Remote Connection', buff, SizeOf(buff)); Result := buff = 1; reg.CloseKey; reg.Free; end; end; Zweite Möglichkeit:
Delphi-Quellcode:
Dritte Möglichkeit:
uses
WinInet; {...} function IsConnectedToInternet: Boolean; var dwConnectionTypes: DWORD; begin dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY; Result := InternetGetConnectedState(@dwConnectionTypes, 0); end; procedure TForm1.Button1Click(Sender: TObject); begin if IsConnectedToInternet then ShowMessage('Connected.') else ShowMessage('Not Connected.') end;
Delphi-Quellcode:
:drunken: irgendwas sollte ja von denen deinen erwartungen entsprechen...
function IsConnectedToInternet(lpdwFlags: LPDWORD): Boolean;
const WininetDLL = 'wininet.dll'; var hWininetDLL: THandle; dwReserved: DWORD; fn_InternetGetConnectedState: function(lpdwFlags: LPDWORD; dwReserved: DWORD): BOOL; stdcall; begin Result := False; dwReserved := 0; hWininetDLL := LoadLibrary(WininetDLL); if hWininetDLL > 0 then begin @fn_InternetGetConnectedState := GetProcAddress(hWininetDLL,'InternetGetConnectedState'); if Assigned(fn_InternetGetConnectedState) then begin Result := fn_InternetGetConnectedState(lpdwFlags, dwReserved); end; FreeLibrary(hWininetDLL); end else raise Exception.Create('Unable to locate function InternetGetConnectedState in library ' + WininetDLL); end; |
Re: Testen ob Internet-Verbindung besteht
Moin Xero,
schau Dir noch mal die Doku zu InternetGetConnectedState an. Der erste Parameter wird von der Funktion gefüllt, es spielt eigentlich keine Rolle, was Du übergibst. Übrigens: Den Registry Value "Remote Connection" habe ich nicht. (den Key davor schon). Damit dürfte ich auch nicht alleine dastehen. |
Re: Testen ob Internet-Verbindung besteht
Vielen Dank für eure Bemühungen!
Die werde ich jetzt alle mal direkt ausprobieren! :spin: |
Re: Testen ob Internet-Verbindung besteht
Hallo. Diese funtion funtioniert dann nicht, wenn ich den Steckerziehe und wieder einstecke.
Dann wird imme FALSE geliefert obwhol ich eine IP von DHCP bekommen habe und serve kann..
Delphi-Quellcode:
function Tf_Datenuebertragung.IsInternetConnected: Boolean;
var dwConnectionTypes: DWORD; begin dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY; Result := InternetGetConnectedState(@dwConnectionTypes, 0); end; |
Re: Testen ob Internet-Verbindung besteht
Lies mal:
![]() |
Re: Testen ob Internet-Verbindung besteht
Das ist eine sehr traurige geschichte :pale:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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