Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Testen ob Internet-Verbindung besteht (https://www.delphipraxis.net/10597-testen-ob-internet-verbindung-besteht.html)

Delphi-Padawan 21. Okt 2003 22:00


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.

chris01 21. Okt 2003 22:05

Re: Testen ob Internet-Verbindung besteht
 
Hi!

Hier in der Dp gibt es schon soetwas!

hier

Gruß Chris

Darty 21. Okt 2003 22:06

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.

Delphi-Padawan 23. Okt 2003 17:11

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?

Matze 23. Okt 2003 17:16

Re: Testen ob Internet-Verbindung besteht
 
ganz oben bei uses musst du das hier noch hinzufügen:
Delphi-Quellcode:
WinInet
dann sollte es klappen.

Edit: Aber bei mir zeigt es immer an, dass ich eine Verbindung habe, ob dies der Fall ist oder nicht. :gruebel:

Delphi-Padawan 24. Okt 2003 10:30

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:
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.
Wo ist der Fehler? Vielen Dank für eure Geduld :-D

[edit=Christian Seehase]Delphi-Tags korrigiert. Mfg, Christian Seehase[/edit]

Jens Schumann 24. Okt 2003 10:42

Re: Testen ob Internet-Verbindung besteht
 
Hallo,
welche Fehlermeldung erhälst Du denn?

mlspider 24. Okt 2003 11:27

Re: Testen ob Internet-Verbindung besteht
 
Wie wär's hiermit:

Delphi-Quellcode:
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;
nicht vergessen zuerst uses wininet; aufzunehmen.

[edit=Christian Seehase] Delphi-Tags korrigiert. Mfg, Christian Seehase[/edit]

Christian Seehase 24. Okt 2003 11:43

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:
function InternetGetConnectedState(lpdwFlags : LPDWORD;dwReserved : DWORD) : longbool; stdcall; external 'wininet.dll';
(dann kannst Du auch die unit wininet weglassen).

XeRo 24. Okt 2003 16:25

Re: Testen ob Internet-Verbindung besteht
 
Versuchs einfach mal so:
Delphi-Quellcode:
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;
Ist zwar mit registry funktioniert aber gut...

Zweite Möglichkeit:
Delphi-Quellcode:
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;
Dritte Möglichkeit:
Delphi-Quellcode:
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;
:drunken: irgendwas sollte ja von denen deinen erwartungen entsprechen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz