Difference between revisions of "Identify Drives/de"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{Identify Drives}} <br> Dieser Artikel gehört zur Windowsprogrammierung.<br> Aufgabe: Ermittlung aller Laufwerke<br> <syntaxhighlight> uses Windows, SysUtils, ...; ... /...")
 
m
Line 36: Line 36:
 
     Exit;
 
     Exit;
  
   // Prüft, ob die Anzahl der Laufwerke nicht grösser als das Array ist
+
   // Prüft, ob die Anzahl der Laufwerke grösser als das Array ist
 
   // Im Fehlerfall wird eine Exception geworfen
 
   // Im Fehlerfall wird eine Exception geworfen
 
   if i > SizeOf(arrLW) then
 
   if i > SizeOf(arrLW) then

Revision as of 08:58, 28 April 2013

Deutsch (de)

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)