Ver Mensaje Individual
  #10  
Antiguo 01-09-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
QuiqueSalamanca,

Continuación del Msg #9



Revisa este código:
Código Delphi [-]
 unit Unit1;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ActiveX, ComObj;
 
 type
   TForm1 = class(TForm)
     Button1: TButton;
     procedure Button1Click(Sender: TObject);
   private
     { Private declarations }
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.dfm}
 
 // Obtiene el MacAddress de una NIC
 function GetMacAddress(NetworkAdapter : String) : String;
 const
    wbemFlagForwardOnly = $00000020;
 
 var
    FSWbemLocator : OLEVariant;
    FWMIService : OLEVariant;
    FWbemObjectSet : OLEVariant;
    FWbemObject : OLEVariant;
    oEnum : IEnumvariant;
    iValue : LongWord;
    SQLWMI : String;
 
 begin
 
    SQLWMI := 'Select MACAddress From Win32_NetworkAdapter Where NetConnectionID = ' 
              + QuotedStr(NetworkAdapter);
 
    FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
    FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
    FWbemObjectSet := FWMIService.ExecQuery(SQLWMI,'WQL',wbemFlagForwardOnly);
    oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
 
    if oEnum.Next(1, FWbemObject, iValue) = 0 then
    begin
       Result := String(FWbemObject.MACAddress);
       FWbemObject := Unassigned;
    end
    else
       Result := EmptyStr;
 
 end;
 
 // Muestra el MacAddress de una NIC
 procedure TForm1.Button1Click(Sender: TObject);
 var
    MacAddress : String;
    NetworkAdapter : String;
    MsgApp : String;
 
 begin
 
    // El nombre del Network Adapter en Control Panel -> Network and Internet -> Network Connections
    NetworkAdapter := 'Local Area Connection';
 
    MacAddress := GetMacAddress(NetworkAdapter);

    if MacAddress <> EmptyStr then
       MessageDlg(MacAddress,mtInformation,[mbOK],0)
    else
    begin
       MsgApp := Format('No Existe una NIC Asociada al Network Adapter : %s',[NetworkAdapter]);
       MessageDlg(MsgApp,mtInformation,[mbOK],0)
    end;
 
 end;
 
 end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, permite obtener el MacAddress de una NIC por medio del identificador de connección de red asociado, que se encuentra en : Control Panel -> Network and Internet -> Network Connections.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 01-09-2014 a las 01:43:14.
Responder Con Cita