Array
(
)

Função que não funciona com WIN98

Foxcyber
   - 09 ago 2004

Estou usando esta função para capturar o serial do HD:

function TForm1.HDSerialNumber(FDrive: String): String;
var
Serial :DWord;
DirLen,Flags :DWord;
DLabel,SisArq : String ;
begin
Try
SetLength(DLabel,255);
SetLength(SisArq,255);
GetVolumeInformation(Pchar(FDrive+´:\´),Pchar(DLabel),255,@Serial,DirLen,Flags,Pchar(SisArq),255);
Result := IntToHex(Serial,8);
Except
Result :=´´;
end;
end;
O problema é o seguinte:
Qdo mapeio uma unidade de rede ou seja o c de outra máquina(WIN2000) pelo win98 ele não consegue pegar o nº serial da máquina mapeada. ALGUÉM JA TEVE ESTE PROBLEMA OU SABE COMO POSSO FAZER PARA QUE ELE CONSIGA PEGAR ESTE Nº SERIAL?


P_lima
   - 09 ago 2004

// Tenta isso, acho que resolve seu problema:
Var
Serial : DWord;
DirLen , Flags : DWord;
DLabel : Array[0..11] of Char;
Begin
Try
GetVolumeInformation(PChar(FDrive+´:\´), dlabel, 12, @Serial, DirLen, Flags, Nil, 0);
Result := IntToHex(Serial,8);
Except
Result := ´´;
End;
end;