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!
Pergunta
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:
Editado por FabiomiojoLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.