还有怎么获得驱动器的扩展名 getextersionname

解决方案 »

  1.   

    哥们儿,最简单的 showmessage(application.exename[1]);
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      i: integer;
      s: string;
    begin
      for i := 65 to 91 do
      begin
        s := char(i) + ':';
        case GetDriveType(PChar(s)) of
          DRIVE_REMOVABLE: ComboBox1.Items.Add(Char(i) + ':软驱');
          DRIVE_FIXED: ComboBox1.Items.Add(Char(i) + ':硬盘');
          DRIVE_CDROM: ComboBox1.Items.Add(char(i) + ':光驱');
        end;
      end;
    end
      

  3.   

    我在编一个低层的类,我想全部使用api,我不想使用delphi 自带的
    要是这样的话,filesystemobject.getdrivename 
    filesystemobject.getextersionname 就可以拉
      

  4.   

    s:序列号,buffer:卷标号
    var
    s:string;
    SerialNum : pdword;
    a, b : dword;
    Buffer : array [0..255] of char;
    begin
    new(serialnum);
    if GetVolumeInformation(PChar('c:\'), Buffer, SizeOf(Buffer), SerialNum,
    a,b,nil, 0) then
    s := IntToStr(SerialNum^);
    showmessage(s+':'+string(buffer));
    dispose(serialnum);
    end;
      

  5.   

    function 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,nil,SystemFlags,0);
      Result := IntToHex(HiWord(VolumeSerialNumber),4) +'-' +IntToHex(LoWord(VolumeSerialNumber),4);
    end;