Avatar billede cautoo Nybegynder
27. februar 2001 - 14:35 Der er 13 kommentarer og
1 løsning

CD

Hvordan kan man få navnet på en CD???
Avatar billede martinlind Nybegynder
27. februar 2001 - 14:37 #1
Hvilket navn ??
Avatar billede snowball Novice
27. februar 2001 - 14:44 #2
Det er vel den cd\'s label som sidder i cd-rom drevet !?

Snowball
Avatar billede cautoo Nybegynder
27. februar 2001 - 14:46 #3
yep
Avatar billede pellelil Nybegynder
27. februar 2001 - 14:53 #4

Function  GetDiskSerial(cDrive : Char) : LongWord;
var
  pacRootName    : PChar;
  pacDiskName    : PChar;
  dwDiskNum      : DWord;
  dwMaxKomponent : DWord;
  dwFlag        : DWord;
  pacDiskSystem : PChar;
begin
  Result := 0;
  if IsDriveReady(cDrive) then begin
    GetMem(pacDiskName,255);
    GetMem(pacDiskSystem,255);
    try
      pacRootName := PChar(cDrive+\':\\\');
      if GetVolumeInformation(pacRootName, pacDiskName, 255,
                              @dwDiskNum, dwMaxKomponent, dwFlag,
                              pacDiskSystem, 255) Then Result := dwDiskNum;
    finally
      FreeMem(pacDiskName);
      FreeMem(pacDiskSystem);
    end;
  end;
end;
Avatar billede pellelil Nybegynder
27. februar 2001 - 14:53 #5
Øhhhh du skal også lige have denne her:

Function  IsDriveReady(cDrive : Char) : Boolean;
var
  uiDrvNum : byte;
  wEMode  : Word;
begin
  Result := False;
  uiDrvNum := ord(cDrive);
  if uiDrvNum >= ord(\'a\') then dec(uiDrvNum,$20);
  wEMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    if DiskSize(uiDrvNum-$40) <> -1 then Result := True
                                    else messagebeep(0);
  finally
    SetErrorMode(wEMode);
  end;
end;
Avatar billede cautoo Nybegynder
27. februar 2001 - 15:08 #6
pacRootName    : PChar;
  pacDiskName    : PChar;
  dwDiskNum      : DWord;
  dwMaxKomponent : DWord;
  dwFlag        : DWord;
  pacDiskSystem : PChar;

Hvad betegner hvad???
Avatar billede pellelil Nybegynder
27. februar 2001 - 15:12 #7
Hvad vil du vide ?

pacXXXX er en Point til et Array of Char (altså en PCHar).
dwXXXX er et Double Word.

Avatar billede cautoo Nybegynder
27. februar 2001 - 15:14 #8
Hvilken en af dem er CD-label-navnet???
Avatar billede borrisholt Novice
28. februar 2001 - 13:37 #9
cautoo >> du kan også bruge den her unit den kan fortælle dig en masse om din disk :

unit DiscInfo;

interface
uses
  Windows, SysUtils, JBUtils;

{$IFDEF VER120}
{$DEFINE Delphi4or5}
{$ENDIF}

{$IFDEF VER130}
{$DEFINE Delphi4or5}
{$ENDIF}


type
  TDriveString = array[0..2] of char;
{$IFDEF Delphi4or5}
  TLargeInteger = _LARGE_INTEGER;
{$ENDIF}

  TDiscInfo = class(TObject)
  private
    FDrive: TDriveString;
    FFreeSpaceAvailable, FTotalSpace: Int64;
    FTotalFree: TLargeInteger;
    FSerialId: string;
  protected
    function GetDriveType: string;
    function GerDriveSize: string;
  public
    constructor Create(const drive: char);
    property Drive: TDriveString read FDrive;
    property DriveType: string read GetDriveType;
    property FreeSpaceAvailable: Int64 read FFreeSpaceAvailable;
    property TotalSpace: Int64 read FTotalSpace;
    property DiskVolSerialID: string read FSerialId;
  end;


implementation

{ TDiscInfo }

constructor TDiscInfo.Create(const drive: char);
var
  Tmp: DWORD;
begin
  FDrive[0] := drive;
  FDrive[1] := #58;
  FDrive[2] := #92;

  FFreeSpaceAvailable := 0;
  FTotalSpace := 0;

  if GetVolumeInformation(FDrive, nil, 0, nil, Tmp, Tmp, nil, 0) then
    GetDiskFreeSpaceEx(FDrive, FFreeSpaceAvailable, FTotalSpace, @FTotalFree);

  FSerialId := GetDiskVolSerialID(drive);
end;

function TDiscInfo.GerDriveSize: string;
begin
  Result := IntToStr(DiskSize(0));
end;

function TDiscInfo.GetDriveType: string;
begin
  case Windows.GetDriveType(FDrive) of
    DRIVE_UNKNOWN: Result := \'Drive type cannot be determined.\';
    DRIVE_NO_ROOT_DIR: Result := \'Root directory does not exist\';
    DRIVE_REMOVABLE: Result := \'Floppy drive.\';
    DRIVE_FIXED: Result := \'Hard disk drive\';
    DRIVE_REMOTE: Result := \'Network drive\';
    DRIVE_CDROM: Result := \'CD-ROM drive\';
    DRIVE_RAMDISK: Result := \'RAM drive\';
  end;
end;

end.


Jens B
Avatar billede borrisholt Novice
28. februar 2001 - 13:37 #10
husk at fjerne JBUtils fra uses.

Jens B
Avatar billede cautoo Nybegynder
28. februar 2001 - 20:42 #11
tak for hjælpen!!
Avatar billede pellelil Nybegynder
28. februar 2001 - 20:57 #12
Hvaee Borrisholt vil du ikke have \"del i kagen\" det var sikkert dit svar der blev brugt ?
Avatar billede borrisholt Novice
01. marts 2001 - 06:49 #13
pellelil>> Tak for tilbudet ... men jeg tror jeg hopper over. tag du blot hele rovet selv.

Jens B
Avatar billede pellelil Nybegynder
01. marts 2001 - 07:27 #14
Its your choice - with or without horse :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester