![]() |
DSL-Verbindungsmonitor!
hallo leute,
ich moechte mir ein kleines tool programmieren, das den zustand meiner dsl verbindung erkennt, meine aktuelle internet-ip anzeigt und bei trennung wieder verbindet. hatt jemand eine idee oder vorschlag wie ich beginnen kann? indy oder api und sockets? es gibt doch auch ein problem dem verbindungsstatus herauszufinden, wenn ich im forum richtig gelesen hab. danke schonmal vorweg euer richard :) |
Re: DSL-Verbindungsmonitor!
moin,
also das mit dem verbinden und trennen dürfte wohl etwas komplizierter werden. ;) wie du deine ip herausbekommst findest du hier: ![]() //Edit hier weitere links (müsste erstma alles ein was du suchst ;)) ![]() ![]() ![]() |
Re: DSL-Verbindungsmonitor!
hi delpmen,
ich muss dazu sagen das ich nicht über nen router gehe sondern per dfü verbindung einwaehle. da muesst es doch apis geben um den connection status rauszufinden oder? der code den du mir empfohlen hast will ich nicht nehmen,da ich da auf externe internetdienste angewiesen bin. sind die mal nicht erreichbar is kacke mit der funktion |
Re: DSL-Verbindungsmonitor!
^^ siehe oben ;)
Zitat:
|
Re: DSL-Verbindungsmonitor!
he danke delphmen,
die neuen links sind das was ich suchte. many thx :) |
Re: DSL-Verbindungsmonitor!
Das ist aus der Delphi Source Library hoffe des hilft dir:
Folgender Code stellt eine komplette Unit eines Formulars dar, die beim Klicken auf den Button feststellt, ob eineVerbindung ins Internet besteht oder nicht.
Delphi-Quellcode:
unit CheckInternetConnection1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Registry, WinSock, WinInet; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; const cERROR_BUFFER_TOO_SMALL = 603; cRAS_MaxEntryName = 256; cRAS_MaxDeviceName = 128; cRAS_MaxDeviceType = 16; type TConnectionType = (ctNone, ctProxy, ctDialup); ERasError = class(Exception); HRASConn = DWord; PRASConn = ^TRASConn; TRASConn = record dwSize: DWORD; rasConn: HRASConn; szEntryName: array[0..cRAS_MaxEntryName] of Char; szDeviceType: array[0..cRAS_MaxDeviceType] of Char; szDeviceName: array [0..cRAS_MaxDeviceName] of char; end; TRasEnumConnections = function (RASConn: PrasConn; var BufSize: DWord; var Connections: DWord): LongInt; stdcall; var Form1: TForm1; function ConnectedToInternet: TConnectionType; function RasConnectionCount: Integer; implementation {$R *.DFM} function ConnectedToInternet: TConnectionType; var Reg: TRegistry; bUseProxy: Boolean; UseProxy: LongWord; begin Result := ctNone; Reg := TRegistry.Create; with REG do try try RootKey := HKEY_CURRENT_USER; if OpenKey('Software\Microsoft\WindowsCurrentVersion\Internet settings', false) then begin if GetDataType('ProxyEnable') = rdBinary then ReadBinaryData('ProxyEnable', UseProxy, SizeOf(LongWord)) else begin bUseProxy := ReadBool('ProxyEnable'); if bUseProxy then UseProxy := 1 else UseProxy := 0; end; if (UseProxy<>0) and (ReadString('ProxyServer')<>'' ) then Result := ctProxy; end; except end; finally Free; end; if Result = ctNone then begin if RasConnectionCount > 0 then Result := ctDialup; end; end; function RasConnectionCount: Integer; var RasDLL: HInst; Conns: array[1..4] of TRasConn; RasEnums: TRasEnumConnections; BufSize: DWord; NumConns: DWord; RasResult: Longint; begin Result := 0; RasDLL := LoadLibrary('rasapi32.dll'); if RasDLL = 0 then exit; try RasEnums := GetProcAddress(RasDLL,'RasEnumConnectionsA'); if @RasEnums = nil then raise ERasError.Create('RasEnumConnectionsA not found in rasapi32.dll'); Conns[1].dwSize := Sizeof (Conns[1]); BufSize := SizeOf(Conns); RasResult := RasEnums(@Conns, BufSize, NumConns); if (RasResult = 0) or (Result = cERROR_BUFFER_TOO_SMALL) then Result := NumConns; finally FreeLibrary(RasDLL); end; end; procedure TForm1.Button1Click(Sender: TObject); var Status: TConnectionType; sMsg: string; begin Status := ConnectedToInternet; if Status = ctDialup then sMsg := 'Im Internet!'; if Status = ctNone then sMsg := 'Nicht im Internet!'; if Status = ctProxy then sMsg := 'Proxyserver'; ShowMessage(string(sMsg)); end; end. |
Re: DSL-Verbindungsmonitor!
Setzen 6:
Zitat:
|
Re: DSL-Verbindungsmonitor!
Der Code dürfte auch nur Überprüfen, ob man sich mittels DFÜ-Verbindung im Internet befindet, ist dies nicht der Fall, wird die Verbindung nicht erkannt.
|
Re: DSL-Verbindungsmonitor!
hmmm... :gruebel:
bei mir gehts auch net ! Zitat:
|
Re: DSL-Verbindungsmonitor!
so jungens bin jetz am coden,
mir fehlt aber immer noch ne methode die ip des dfü adapters abzufragen. hatt da denn keiner nen api call zur hand? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 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