如何获取光驱信息~

解决方案 »

  1.   

    检测光驱硬盘的序列
    能正常支持光驱的检测。 
    注:如果返回值为'0000-0000',则未检测到。
    function TForm1.GetHDSerialNumber(Drv:String):String;
    var
      VolumeSerialNumber:DWORD;
      MaximumComponentLength:DWORD;
      FileSystemFlags:DWORD;
    begin
    if Drv[Length(Drv)]=':' then Drv:=Drv+'';
    GetVolumeInformation(pChar(Drv),
                         nil,
                         0,
                         @VolumeSerialNumber,
                         MaximumComponentLength,
                         FileSystemFlags,
                         nil,
                         0);
    Result:=IntToHex(HiWord(VolumeSerialNumber),4)+
            '-' +
            IntToHex(LoWord(VolumeSerialNumber),4);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(GetHDSerialNumber(Edit1.Text));
    end;