Delphi-PRAXiS
Seite 6 von 11   « Erste     456 78     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Feststellen, ob Netzwerkkabel gezogen wurde? (https://www.delphipraxis.net/3672-feststellen-ob-netzwerkkabel-gezogen-wurde.html)

DaFox 12. Jul 2004 13:13

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
Hi,

die ultimative Lösung habe auch ich nicht. Aber hast Du schon mal folgende Funktionen angeschaut?
MSDN-Library durchsuchenIsNetworkAlive, MSDN-Library durchsuchenIsDestinationReachable

Gruß,
Markus

djmasi 12. Jul 2004 14:59

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
@DafOx: hast du schonmal damit gearbeitet? Wollte gerade die Sensapi.dll einbinden, aber Delphi brachte mir eine Fehlermeldung, dass es nicht ginge ("Fehler beim Laden der Typbibliothek/DLL").
Hab ich vielleicht was übersehen? :?:

NicoDE 12. Jul 2004 15:09

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
Zitat:

Zitat von djmasi
Ich muss dich leider enttäuchen :cry: , aber nachdem ich deine Typenbibliothek installiert habe bekomme ich immer noch alle Informationen von XP. Durch die importierte TLB stelle ich ja eine Verbindung zu der DLL dar, über Funktionen. Also eine Schnittstelle. Diese sind im allgemeinen gleich geblieben (die von mir benötigten haben sich nicht geändert).

Ich weiss nicht mit welcher Version Du arbeitest, aber ich konnte mit der importierten Version 1.0 der TLB *nicht* mehr kompilieren (unbekannte Konstante - das war auch der Grund warum schon das Connect zu WMI unter Win9x fehlschlug ($80041008))...
Zudem gibt es die NetworkConnectionID ubd NetworkConnectionStatus unter WinSE nicht...

djmasi 12. Jul 2004 15:17

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
Also ich hab deine genommen :?

Aber vielleicht liegt es ja noch an der DLL? Kannst du deine mal noch mit posten?

NicoDE 12. Jul 2004 15:37

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
Zitat:

Zitat von djmasi
Kannst du deine mal noch mit posten?

http://www.bendlins.de/temp/wbem-1.0_winse.zip
( ps: befinden sich unter WIn9x in %windir%\system\WBEM )


Zum Beitrag oben, IsNetworkAlive() liefert immer noch LAN zurück wenn das Kabel längst gezogen wurde...
Delphi-Quellcode:
const
  NETWORK_ALIVE_LAN = $00000001;
  NETWORK_ALIVE_WAN = $00000002;
  NETWORK_ALIVE_AOL = $00000004;

function IsNetworkAlive(out Flags: DWORD): BOOL; stdcall;
  external 'sensapi.dll' name 'IsNetworkAlive';

procedure TForm1.Button1Click(Sender: TObject);
var
  Flags: DWORD;
  Text: string;
begin
  Text := 'IsNetworkAlive: ';
  if not IsNetworkAlive(Flags) then
    Text := Text + '<offline>'
  else
  begin
    if (Flags and NETWORK_ALIVE_LAN) = NETWORK_ALIVE_LAN then
      Text := Text + 'LAN, ';
    if (Flags and NETWORK_ALIVE_WAN) = NETWORK_ALIVE_WAN then
      Text := Text + 'WAN, ';
    if (Flags and NETWORK_ALIVE_AOL) = NETWORK_ALIVE_AOL then
      Text := Text + 'Looser, ';
    Text := Text + '...';
  end;
  ShowMessage(Text);
end;

djmasi 12. Jul 2004 16:07

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
Zitat:

Zitat von NicoDE
Zum Beitrag oben, IsNetworkAlive() liefert immer noch LAN zurück wenn das Kabel längst gezogen wurde...

Warum? Bei mir funktionierts :gruebel:

Reaktionszeit < 1 Sekunde :-D

PS: Danke nochmal für die Dateien und den Code

djmasi 12. Jul 2004 16:27

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
Ähm, hab ich jetzt 'nen Denkfehler? Weil wenn ich
Delphi-Quellcode:
function IsDestinationReachable(Destination: String): BOOL; stdcall;
  external 'sensapi.dll' name 'IsDestinationReachable';
einbinde, sagt mir Delphi, "der Prozedureinstiegspunkt wurde nicht gefunden". Aber laut MSDN heißt die Funktion doch so.

Ich dreh hier gleich durch :wall:

DaFox 12. Jul 2004 17:00

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
Hi.

Delphi-Quellcode:
PQOCInfo = ^TQOCInfo;
TQOCInfo = record
  dwSize: Integer;
  dwFlags: Integer;
  dwInSpeed: Integer;
  dwOutSpeed: Integer;
end;

function IsDestinationReachable(Destination: PChar; QOCInfo: pQOCInfo): BOOL; stdcall;
  external 'sensapi.dll' name 'IsDestinationReachableA';
Gruß,
Markus

djmasi 12. Jul 2004 17:02

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
Na auf das A muss man erstmal kommen. Danke :-D

p0w3r5tr34m3r 12. Jul 2004 17:04

Re: Feststellen, ob Netzwerkkabel gezogen wurde?
 
ne ganz einfache möglichkeit is (die supermuckl und ich eben herrausgefunden haben), ping einfach alle netzwerkkarten von dir an.. wenn das kabel gezogen ist, deaktiviert sich die karte und die ip existiert somit nicht mehr!

das klappt auf allen 5 rechnern hier, also warum nicht auch bei dir / euch !?


MfG Powerstreamer


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.
Seite 6 von 11   « Erste     456 78     Letzte »    

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