Einzelnen Beitrag anzeigen

toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#11
  Alt 14. Jun 2005, 18:01
Zitat von justify:
Guten Abend allerseits!

Nun habe ich mal beide Varianten ausprobiert - sowohl die lange von toyoman, als auch den Dreizeiler, der am Anfang gepostet wurde.

Allerdings habe ich folgendes Problem: toyoman's Variante läuft nur unter NT, der Dreizeiler nur unter XP!

Was nun? Eine Möglichkeit wäre ja festzustellen, welches OS gerade benutzt wird, aber das ist alles ziemlich umständlich.

Gibt's eventuell einen Befehl, mit dem man kurz und knapp abfragen kann, ob man mit dem LAN verbunden ist oder nicht?

Ich meine, um festzustellen, ob man mit dem Internet verbunden ist, geht's auch schnell mit 'nem Befehl, der mir gerade nicht einfällt, aber funktioniert.

Naja, wäre nett, wenn Ihr mal paar Tipps geben könntet.

Schönen Abend noch!

hey, die variante war nicht von mir sondern von djmasi...

ich benütze in meinen Service diese Funktion (auch irgendwo hier aus dem Forum, bisschen modifiziert):

Delphi-Quellcode:
function NetworkConnect : Boolean;
var
  reg : TRegistry;
  i : Integer;
  NetworkCards : String;
begin
  result := false;
  reg := TRegistry.Create(KEY_READ);
  reg.RootKey := HKEY_LOCAL_MACHINE;
  for i := 0 to 15 do //Mehr als 15 Netzwerkkarten sollte kein normaler Rechner haben...
  begin
    if reg.KeyExists('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\' +inttostr(i)) = true then
    begin
      logfileschreiben('----------------------------------------------------------------------------------------');
      reg.OpenKey('\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\' +inttostr(i),false);
      NetworkCards := reg.ReadString('ServiceName');
      logfileschreiben('Networkcard ID: '+Networkcards);
      logfileschreiben('Networkcard description: '+reg.readstring('Description'));
     // break;
      if NetworkCards <> 'then
      begin
        reg.OpenKey('\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\'+NetworkCards,false);
        logfileschreiben('DHCP Domain: '+reg.readstring('DhcpDomain'));
        logfileschreiben('DHCP IP: '+reg.readstring('DhcpIPAddress'));
        logfileschreiben('----------------------------------------------------------------------------------------');
        if reg.ReadString('DHCPDomain') <> 'then
        begin
            result := true
        end else
        begin
            result := false;
        end;
      end;
    end;
  end;
  reg.Free;
end;
logfileschreiben ist eine Extra-Prozedur.

Aufruf:

Delphi-Quellcode:
if networkconnect=true then
   begin
      logfileschreiben('Networkcard: Network cable plugged in.');
      winipath:=vpnfile; // Konfigurationsfile
      logfileschreiben('Using network version of VPN.ini: '+winipath);
   end else
   begin
      logfileschreiben('Networkcard: Network cable unplugged!');
      winipath:=getpath+'vpn.ini';
      logfileschreiben('Network not reachable, Using local VPN.ini file: '+winipath);
   end;
  Mit Zitat antworten Zitat