1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Серийный номер винта как увидеть программно?

Тема в разделе "Софт", создана пользователем osa, 26.11.02.

  1. osa

    osa Активный участник

    884
    0
    Если знаете, то пример на любом языке, кроме русского
     
  2. osa

    osa Активный участник

    884
    0
    Лаконично. Спасибо. Взял.
     
  3. pegas

    pegas Участник

    311
    0
    кстати в той ссылке что номер один грубейшая ошибка-пример работать не будет. На самом деле примерно так

    function snumber(str:string):integer;
    var SerialNum : pdword;
    a,b : dword;
    Buffer : array [0..255] of char;
    begin
    new(serialnum);
    if GetVolumeInformation(pchar(str), Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then
    Result:=(SerialNum^) else raise exception.CreateFmt('ошибка %d',[getlasterror]);
    dispose(serialnum);
    end;


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    label1.Caption:=format('%x',[snumber('c:\')]);
    end;

    Под 9х возможна ситуация когда GetVolumeInformation возвратит 0 если определять номер Removable Device. Тогда надо юзать GetFileInformationByHаndle