Identify Drives/de
From Free Pascal wiki
Jump to navigationJump to searchThe printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
│
Deutsch (de) │
Zurück zu den Zusätzlichen Informationen.
Dieser Artikel gehört zur Windowsprogrammierung.
Aufgabe: Ermittlung aller Laufwerke
uses
Windows, SysUtils, ...;
...
// Liste der zulässigen Laufwerktypen und ihre Werte
{ DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;}
var
i: longword;
arrLW: array[0..255] of char;
pLW: PChar;
begin
...
// Ermittelt die Anzahl aller Laufwerke
// und füllt das übergebene Char-Array arrLW mit den Laufwerken
i := GetLogicalDriveStrings(SizeOf(arrLW), arrLW);
// Prüft, ob ein Laufwerk gefunden wurde
// Abbruch, wenn kein Laufwerk gefunden wurde
if i <= 0 then
Exit;
// Prüft, ob die Anzahl der Laufwerke grösser als das Array ist
// Im Fehlerfall wird eine Exception geworfen
if i > SizeOf(arrLW) then
raise Exception.Create(SysErrorMessage(ERROR_OUTOFMEMORY));
// Weist das Array mit den Laufwerken einem PChar zu
pLW := arrLW;
// Prüft, ob der Zeiger des PChars noch auf einen gültigen Bereich zeigt
while pLW^ <> #0 do
begin
// Prüft, ob es sich bei dem Laufwerk zum einen gültigen Laufwerkstyp handelt
if (GetDriveType(pLW) > DRIVE_UNKNOWN) then
// weist den Laufwerksbuchstaben z. B. einer Combobox zu
frmFormular1.cmbLaufwerke.Items.Add(pLW);
// erhöht den Zeiger von pLW um 4
Inc(pLW, 4);
end;
...
--Olaf 06:58, 28 April 2013 (UTC)