![]() |
Re: Nur CD/DVD ROM Laufwerke auslesen..
Moin Matze,
stimmt, kein Ergebnis :? Und ich war mir absolut sicher, dass ich dazu schon mal was gepostet hatte. Na gut, dann jetzt:
Delphi-Quellcode:
var
sDrives : string; iIndex : integer; begin // 105, da 26 mögliche Laufwerke im Format: // Buchstabe:\#00 // sowie abschliessende #00 sDrives := StringOfChar(#00,105); GetLogicalDriveStrings(105,@sDrives[1]); iIndex := 1; while sDrives[iIndex] <> #00 do begin ShowMessage(copy(sDrives,iIndex,3)); inc(iIndex,4); end; end; |
Re: Nur CD/DVD ROM Laufwerke auslesen..
Gut, dann eben nicht. :cry:
|
Re: Nur CD/DVD ROM Laufwerke auslesen..
Zitat:
Ich habe nur gemeint, dass Christians Link licht geht. In deinem Beitrag deines Links steht dasselbe. :thumb: Ich habe den schon damals angeschaut. ;) |
Re: Nur CD/DVD ROM Laufwerke auslesen..
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var BufferLength: DWORD; DriveStrings: LPTSTR; CurrentDrive: LPTSTR; ReturnValue: DWORD; begin BufferLength := GetLogicalDriveStrings(0, nil); if (BufferLength > 0) then begin DriveStrings := LPTSTR(GetMemory( (BufferLength + 1) * SizeOf(DriveStrings[0]))); if (DriveStrings <> nil) then try ReturnValue := GetLogicalDriveStrings(BufferLength, DriveStrings); if (ReturnValue > 0) and (ReturnValue <= BufferLength) then begin CurrentDrive := DriveStrings; while (CurrentDrive[0] <> #0) do begin if (GetDriveType(CurrentDrive) = DRIVE_CDROM) then MessageBox(Handle, CurrentDrive, 'CD-ROM', MB_OK); CurrentDrive := LPTSTR(@CurrentDrive[StrLen(CurrentDrive) + 1]); end; end; finally FreeMemory(DriveStrings); end; end; end; |
Re: Nur CD/DVD ROM Laufwerke auslesen..
Jetzt fängt Mathias gleich wieder an zu heulen. :roll:
![]() |
Re: Nur CD/DVD ROM Laufwerke auslesen..
Da es keine Unicode-Version von SysUtils.StrLen gibt, sollte man in meinem Beispiel
Delphi-Quellcode:
durch
CurrentDrive := LPTSTR(@CurrentDrive[StrLen(CurrentDrive) + 1]);
Delphi-Quellcode:
ersetzen.
while (CurrentDrive[0] <> #0) do
CurrentDrive := CharNext(CurrentDrive); CurrentDrive := LPTSTR( Cardinal(CurrentDrive) + SizeOf(CurrentDrive[0])); Da die Standard-RTL von Delphi ohnehin keine brauchare Unicode-Unterstützung bietet, ist dies eher kosmetischer Natur... |
Re: Nur CD/DVD ROM Laufwerke auslesen..
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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