FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error utilizando WMI
Buenos días,
he intentado utilizar el código que aparece en el artículo All about WiFi Networks and WiFi Adapters using the WMI and Delphi pero al ejecutar el procedimiento Current Wifi NetWork me da un error indicándome "clase no válida". Project raised exception class EOleException with message "Clase no válida" en la línea Código:
FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM WiFi_AdapterAssociationInfo','WQL',wbemFlagForwardOnly); Código:
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComObj, ActiveX, Variants, XPMan; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; XPManifest1: TXPManifest; Button2: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure GetWiFi_AdapterAssociationInfo; //Current Wifi NetWork const WbemUser =''; WbemPassword =''; WbemComputer ='localhost'; wbemFlagForwardOnly = $00000020; var FSWbemLocator : OLEVariant; FWMIService : OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; Form1.Memo1.Clear; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword); FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM WiFi_AdapterAssociationInfo','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; while oEnum.Next(1, FWbemObject, iValue) = 0 do begin Form1.Memo1.Lines.Add(Format('Associated %s',[FWbemObject.Associated]));// Boolean Form1.Memo1.Lines.Add(Format('AuthenAlgorithm %s',[FWbemObject.AuthenAlgorithm]));// String Form1.Memo1.Lines.Add(Format('AuthenEnabled %s',[FWbemObject.AuthenEnabled]));// Boolean Form1.Memo1.Lines.Add(Format('AuthenMode %s',[FWbemObject.AuthenMode]));// String Form1.Memo1.Lines.Add(Format('Caption %s',[FWbemObject.Caption]));// String Form1.Memo1.Lines.Add(Format('Channel %s',[FWbemObject.Channel]));// String Form1.Memo1.Lines.Add(Format('Description %s',[FWbemObject.Description]));// String Form1.Memo1.Lines.Add(Format('Encryption %s',[FWbemObject.Encryption]));// String Form1.Memo1.Lines.Add(Format('OpMode %s',[FWbemObject.OpMode]));// String Form1.Memo1.Lines.Add(Format('Profile %s',[FWbemObject.Profile]));// String Form1.Memo1.Lines.Add(Format('Rate %s',[FWbemObject.Rate]));// String Form1.Memo1.Lines.Add(Format('SettingID %s',[FWbemObject.SettingID]));// String Form1.Memo1.Lines.Add(Format('SSID %s',[FWbemObject.SSID]));// String FWbemObject:=Unassigned; end; end; procedure TForm1.Button1Click(Sender: TObject); begin GetWiFi_AdapterAssociationInfo; end; end. ¿Alguien puede ayudarme? Saludos... |
#2
|
||||
|
||||
Hay una clases WMI básicas y a partir de ahí hay muchas otras que se instalan dependiendo de los proveedores; Es decir, que dos equipos no tienen porqué tener las mismas clases instaladas.
Como dice en el artículo, la clase que se usa no es de las que "vienen por defecto con el sistema" y para poder disfrutar de ella, tu dispositivo WIFI debe instalar un proveedor que te permita acceder a ella. "In order to work with the next WMI classes your Wifi Network adapter must install a CIMWiFiProvider which implement these classes."
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Utilizando COM con delphi | raulb | Conexión con bases de datos | 1 | 30-09-2010 19:20:13 |
Busquedas utilizando ADO | tenporal | Conexión con bases de datos | 18 | 31-03-2010 02:06:12 |
Utilizando la API de windows - Help | fdanielc | API de Windows | 5 | 26-06-2008 18:21:00 |
Error utilizando GetModuleUsage en WinExecAndWait32 en Borland Delphi 7 | feidakila | API de Windows | 0 | 22-08-2007 18:51:43 |
Error utilizando DataSet | Coco_jac | Conexión con bases de datos | 2 | 13-04-2006 00:12:35 |
|