Desculpe voltar com esses post sobre pegar serial físico de hd mas estou precisando de ajuda e os últimos posts que pesquisei aqui são de 2009!
vamos lá.
Estou utilizando o seguinte código
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,WbemScripting_TLB,ActiveX;
type
TForm4 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
function GetWMIstring (wmiHost, wmiClass, wmiProperty : string):string;
var // These are all needed for the WMI querying process
Locator: ISWbemLocator;
Services: ISWbemServices;
SObject: ISWbemObject;
ObjSet: ISWbemObjectSet;
SProp: ISWbemProperty;
Enum: IEnumVariant;
Value: Cardinal;
TempObj: OleVariant;
SN: string;
begin
try
Locator := CoSWbemLocator.Create; // Create the Location object
// Connect to the WMI service, with the root\cimv2 namespace
Services := Locator.ConnectServer(wmiHost, 'root\cimv2', '', '', '','', 0, nil);
ObjSet := Services.ExecQuery('SELECT * FROM '+wmiClass, 'WQL',
wbemFlagReturnImmediately and wbemFlagForwardOnly , nil);
Enum := (ObjSet._NewEnum) as IEnumVariant;
while (Enum.Next(1, TempObj, Value) = S_OK) do
begin
SObject := IUnknown(tempObj) as ISWBemObject;
SProp := SObject.Properties_.Item(wmiProperty, 0);
if VarIsNull(SProp.Get_Value) then
result := ''
else
begin
SN := SProp.Get_Value;
result := SN;
end;
end;
except // Trap any exceptions (Not having WMI installed will cause one!)
on exception do
result := '';
end;
end;
procedure TForm4.Button1Click(Sender: TObject);
var
Y:string;
begin
Y:=GetWMIstring('','Win32_DiskDrive','SerialNumber') ;
ShowMessage('Serial fisico hd: ' + y);
end;
end.
gostaria da ajuda de vocês pra identificar o porque que em determinado sistema operacional e hd não retorna serial.
testei em XP/7 - x32 com HDs IDE/SATA
alguém sabe me ajudar com esse problema??
não testei em versão x64, acredito que também funcione.
Gostaria também de identificar sobre qual ou quias dll esse código trabalha!
Question
Fabiomiojo
Olá Amigos,
Desculpe voltar com esses post sobre pegar serial físico de hd mas estou precisando de ajuda e os últimos posts que pesquisei aqui são de 2009!
vamos lá.
Estou utilizando o seguinte código
gostaria da ajuda de vocês pra identificar o porque que em determinado sistema operacional e hd não retorna serial.
testei em XP/7 - x32 com HDs IDE/SATA
alguém sabe me ajudar com esse problema??
não testei em versão x64, acredito que também funcione.
Gostaria também de identificar sobre qual ou quias dll esse código trabalha!
aguardo ajudas :blink:
Edited by FabiomiojoLink to comment
Share on other sites
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.