AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Name des CD-ROM-Laufwerks (zB LITEON LTD163D)
Thema durchsuchen
Ansicht
Themen-Optionen

Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

Ein Thema von Garfield · begonnen am 9. Jan 2005 · letzter Beitrag vom 26. Jan 2005
 
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#16

Re: Name des CD-ROM-Laufwerks (zB LITEON LTD163D)

  Alt 11. Jan 2005, 23:23
Jetzt habe ich BassCD.Dll ausprobiert. Damit bekomme ich das, was ich wollte: Einen Laufwerksbuchstaben und den Namen des Laufswerkes. Dazu benötigt man von der Seite http://www.un4seen.com/bass.html die bass und die basscd. Für das Projekt nimmt man daraus die bass.pas, bass.dll, basscd.pas und basscd.dll. Im Archiv zur basscd ist ein Beispielprojekt. Das habe ich zusammengestrichen. Außerdem noch die Variable LW: String und zwei Befehle eingefügt sowie einen geändert, um die Laufswerkbezeichnung auf den Namen zu kürzen. Das sind unten die drei Befehle nach dem Begin bei Zeile 50/51. Ich habe keine Lust nachzuzählen; auf jeden Fall ist hier die Zeilenhöhe in beiden Spalten unterschiedlich. Die unit1 sieht dann so aus:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, SysUtils, Forms, Classes, Controls, StdCtrls, Bass, BassCD;

type
  TForm1 = class(TForm)
    cmbDrives: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure cmbDrivesChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  MAXDRIVES = 10;

var
  Form1: TForm1;

  curdrive: Integer = 0;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  n: PChar;
  a: Integer;
  lw,
  text: String;
begin
   // check that BASS 2.1 was loaded
   if (BASS_GetVersion <> DWORD(MAKELONG(2,1))) then
  begin
    MessageBox(0, 'BASS version 2.1 was not loaded', 'Error', MB_ICONERROR);
      Halt;
   end;

  // Get list of available drives
  a := 0;
  n := BASS_CD_GetDriveDescription(a);
  while (a < MAXDRIVES) and (n <> nil) do
  begin
    lw := n;
    lw := copy(lw, 0, pos(' v', lw) - 1);
    text := Format('%s: %s', [Char(BASS_CD_GetDriveLetter(a)
          + Ord('A')), lw]); // "letter: description"
    cmbDrives.Items.Add(text);
    a := a + 1;
    n := BASS_CD_GetDriveDescription(a);
  end;
  if (a = 0) then
  begin
    MessageBox(0, 'No CD drives found', 'Error', MB_ICONERROR);
    Halt;
  end;
  cmbDrives.ItemIndex := 0; // select 1st drive

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  BASS_Free;
end;

procedure TForm1.cmbDrivesChange(Sender: TObject);
begin
  // change current drive
  curdrive := cmbDrives.ItemIndex;
end;

end.
Auf der Form befindet sich nur noch eine ComboBox.

Bleibt nur eine Sache. Die BassCD.Dll findet ein CD-Laufwerk, was am Promise-Raidcontroller hängt, nicht.

PS: Bei Interesse könnte ich auch mal die Projekte anhängen.
Angehängte Dateien
Dateityp: exe cdtest_617.exe (377,5 KB, 20x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz