Pessoal, eu tenho essa função para pegar o serial do HD
procedure TFrmIzaLoja.BuscaSerialHd;
var nPro, nCPr, nHDS, nPa1, nPa2, nSer, pSHD : String;
i : Integer;
nRes : Extended;
vReg : TRegistry;
begin
vReg := TRegistry.Create;
vReg.RootKey := HKEY_LOCAL_MACHINE;
// le a chave ProductID
vReg.OpenKey( 'SOFTWARE\Microsoft\Windows\CurrentVersion', False );
nPro := vReg.ReadString( 'ProductID' );
// remove todos os caracteres não numericos da chave do produto
nCPr := '';
dskSer.ExamineDrive;
pSHD := dskSer.DiskSerial;
for i := 1 to Length( nPro ) do
begin
if ENumero( Copy( nPro, i, 1 ) ) then
nCPr := nCPr + Copy( nPro, i, 1 );
end;
// remove todos os caracteres não numericos do serial do HD
nHDS := '';
for i := 1 to Length( pSHD ) do
begin
if ENumero( Copy( pSHD, i, 1 ) ) then
nHDS := nHDS + Copy( pSHD, i, 1 );
end;
// calcula o serial do programa
nRes := ( StrToFloat( nCPr ) * StrToFloat( nCPr ) ) + StrToFloat( nHDS );
nRes := nRes / ( StrToFloat( nHDS ) * 2 );
i := Pos( ',', FloatToStr( nRes ) );
// verifica se foi encontrada alguma virgula no numero definido
if ( i > 0 ) then
begin
nPa1 := Copy( FloatToStr( nRes ), 01, ( i - 1 ) );
nPa2 := Copy( FloatToStr( nRes ), ( i + 1 ), ( Length( FloatToStr( nRes ) ) - i ) );
end;
if Length( nPa1 ) > Length( nPa2 ) then
nSer := nPa1
else
nSer := nPa2;
SerialHd := nSer;
end;
Pergunta
robinhocne
Pessoal, eu tenho essa função para pegar o serial do HD
porém quando chega nessa linha ele dá erro.isso tambem no windows seven, pois no xp na dava esse erro !
alguém tem esse procedimento para o windows seven ?
Link para o comentário
Compartilhar em outros sites
1 resposta 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.