AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Feststellen, ob Netzwerkkabel gezogen wurde?
Thema durchsuchen
Ansicht
Themen-Optionen

Feststellen, ob Netzwerkkabel gezogen wurde?

Ein Thema von raffix · begonnen am 24. Mär 2003 · letzter Beitrag vom 2. Jun 2008
 
Tod787

Registriert seit: 19. Mai 2008
99 Beiträge
 
#33

Re: Feststellen, ob Netzwerkkabel gezogen wurde?

  Alt 28. Mai 2008, 13:40
Also ich hab jetzt mal provisorisch ein kleines Testprogramm geschrieben und muss erstmal sagen es funktioniert schonmal soweit. Allerdings wird zur Zeit nur ein Adapter ausgegeben. Irgendwas stimmt mit der For-Schleife noch nicht.

Was ich im Taskmanger bemerkt habe ist, dass der Arbeitsspeicher mit jedem Zyklus voller wird. Weiß zwar noch nicht genau was aber ich denke mal dass ich nach jedem Aufruf noch etwas reseten bzw. nullen sollte.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, WinSock, ActiveX, ComObj, ExtCtrls;

type
  TForm1 = class(TForm)

    Timer1: TTimer;
    Panel1: TPanel;

    procedure Timer1Timer(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
 wmi : variant;
 wmiService : variant;
 nicstatus : variant;
 card : Olevariant;
 cnt : integer;
 Enum: IEnumVariant;
 P : IUnknown;
 F : Cardinal;
 connected : integer;
 status : string;
begin
  WMI:=CreateOleObject('WbemScripting.SWbemLocator');
  wmiService := wmi.ConnectServer('.', 'root\wmi');
  nicstatus := wmiService.InstancesOf('MSNdis_MediaConnectStatus');
  p := nicstatus._NewEnum;
  p.QueryInterface(IEnumVariant, Enum);

  for cnt := 0 to nicstatus.Count - 1 do
   begin
     Enum.Next(1, card, F);
     connected := card.NdisMediaConnectStatus;
     if (connected = 0) then
       Status := 'verbunden'
        else
         Status := 'nicht verbunden';
      Panel1.Caption := card.InstanceName + ' : ' + status;
     //ShowMessage(card.InstanceName + ' : ' + Status);
   end;
end;

end.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 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