Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 11-07-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
vroa74,

Cita:
Empezado por vroa74
...alguna forma de poder consultar el software y el harware del sistema operativo independientemente de la version de windows...
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;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
   Win32_BIOS_Property : array[0..26] of string =
   (
    'BiosCharacteristics', 'BIOSVersion', 'BuildNumber',
    'Caption', 'CodeSet', 'CurrentLanguage',
    'Description', 'IdentificationCode', 'InstallableLanguages',
    'InstallDate', 'LanguageEdition', 'ListOfLanguages',
    'Manufacturer', 'Name', 'OtherTargetOS',
    'PrimaryBIOS', 'ReleaseDate', 'SerialNumber',
    'SMBIOSBIOSVersion', 'SMBIOSMajorVersion', 'SMBIOSMinorVersion',
    'SMBIOSPresent', 'SoftwareElementID', 'SoftwareElementState',
    'Status', 'TargetOperatingSystem', 'Version');

var
  Form1: TForm1;
  WMINameSpace : String;
  WMIClass : String;
  WMIProperty : String;

implementation

{$R *.dfm}

function GetWMIInfo(const WMINameSpace, WMIClass, WMIProperty : String) : Variant;
const
   wbemFlagForwardOnly = $00000020;

var
   FSWbemLocator : OLEVariant;
   FWMIService : OLEVariant;
   FWbemObjectSet : OLEVariant;
   FWbemObject : OLEVariant;
   oEnum : IEnumvariant;
   Value : LongWord;
   SQLWMI : String;
   WMIValue : Variant;
   i : Integer;

begin

   // Obtiene Acceso a WMI
   FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');

   // Obtiene Acceso al NameSpace WMINameSpace localmente que contiene la Clase WMIClass
   try
      FWMIService := FSWbemLocator.ConnectServer('localhost', WMINameSpace, '', '');
   except
      raise Exception.Create('Error en WMI : NameSpace No Valido');
   end;

   // Contruye la Consulta SQL WMI (WQL) a la Clase Win32_Process
   SQLWMI := 'SELECT * FROM ' + WMIClass;

   // Ejecuta la Consulta
   try
      FWbemObjectSet := FWMIService.ExecQuery(SQLWMI,'WQL',wbemFlagForwardOnly);
   except
      raise Exception.Create('Error en WMI : Clase No Valida');
   end;

   // Interface a los objetos COM de la consulta por medio de enumeración
   oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;

   // Accesa las propiedades de los objetos de la enumeración
   if oEnum.Next(1, FWbemObject, Value) = 0 then
   begin

      try
         WMIValue := FWbemObject.Properties_.Item(WMIProperty).Value;
      except
         raise Exception.Create('Error en WMI : Propiedad No Valida');
      end;

      if VarIsArray(WMIValue) then
      begin
         for i:= VarArrayLowBound(WMIValue,1) to VarArrayHighBound(WMIValue,1) do
            Result := Result + ' ' + String(WMIValue[i]);
      end
      else if not VarIsNull(WMIValue) then
         Result := WMIValue
      else
         Result := EmptyStr;

      FWbemObject:=Unassigned;

   end
   else
      raise Exception.Create('Elemento no Encontrado en WMI');

end;

procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;

begin

   WMIClass := 'Win32_BIOS';
   WMINameSpace := 'root\CIMV2';

   ListBox1.Clear;

   for i := 0 to High(Win32_BIOS_Property) do
   begin
      WMIProperty := Format('%s = %s',[Win32_BIOS_Property[i],GetWMIInfo(WMINameSpace, WMIClass,Win32_BIOS_Property[i])]);
      ListBox1.Items.Add(WMIProperty);
      if ListBox1.ScrollWidth < ListBox1.Canvas.TextWidth(WMIProperty) then
         ListBox1.ScrollWidth := ListBox1.Canvas.TextWidth(WMIProperty) + 120;
   end;

end;

end.
El código anterior permite consultar el BIOS de la máquina por medio de WMI (Windows Management Instrumentation) a través de las Propiedades de la Clase 'Win32_BIOS' del NameSpace 'root\CIMV2'. Por medio de los NameSpaces, Clases y Propiedades de WMI se puede consultar la información pertinente (Hardware y Software) de una máquina local o remota. Este ejemplo puede servir de base a tu requerimiento utilizando las clases y propiedades del NameSpace 'root\CIMV2'.

El ejemplo esta disponible en el link: http://terawiki.clubdelphi.com/Delph...t_WMI_Info.rar

Te sugiero consultar estos links:
Cita:
Windows Management Instrumentation : http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

WMI Delphi Code Creator : http://theroadtodelphi.wordpress.com...-code-creator/

WMI Tasks using Delphi – Computer Hardware : http://theroadtodelphi.wordpress.com...uter-hardware/

WMI Scripting Examples : http://www.robvanderwoude.com/wmiexamples.php
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 11-07-2013 a las 07:29:54.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿cual es la forma de documentar un sistema en Delphi? flystar Varios 8 04-05-2010 09:43:45
buscando componente laukri Varios 3 22-05-2008 09:29:16
buscando componente vroa74 Varios 8 20-09-2007 16:15:24
Cual es la mejor forma de llevar registros contables en un sistema AzidRain Debates 11 30-03-2007 02:27:44
Buscando componente IVAND Varios 0 04-11-2003 19:50:30


La franja horaria es GMT +2. Ahora son las 17:34:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi