GetLogicalDriveStrings 將現有邏輯磁碟機以「代碼 + 冒號 + 反斜線 + 雙重空字元」格式寫入緩衝區,每個磁碟機佔 4 字元。傳回值為實際寫入字元數 (含結尾雙空字元)。
function GetLogicalDriveStrings(
nBufferLength: DWORD;
lpBuffer: PAnsiChar
): DWORD; stdcall;
procedure TForm1.FormCreate(Sender: TObject);
var
PStr: PChar;
DriveArr: array[0..4*26] of Char; // 26 個磁碟機 * 4 字元
begin
GetLogicalDriveStrings(SizeOf(DriveArr), DriveArr);
PStr := DriveArr;
Memo1.Clear;
while PStr <> nil do
begin
Memo1.Lines.Add(PStr);
Inc(PStr, StrLen(PStr) + 1); // 移至下一個字串
if Byte(PStr[0]) = 0 then PStr := nil; // 雙重空字元 = 結束
end;
end;

GetLogicalDrives:回傳位元遮罩,第 0 位 = A:,第 1 位 = B: ... 適合快速判斷存在性。SysUtils.GetLogicalDriveStrings:直接回傳 TStringList,更方便。注意:網路磁碟機、可移除裝置皆會列出;CD-ROM 無媒體時可能不出現。
ActnList.pas 熱修補方案
Delphi 6 XML 文件處理完全指南:TXMLDocument 元件操作與 MIME 編碼整合
Delphi 2009 TBalloonHint 氣球提示元件完整教學
POJ 3150 Cellular Automaton (矩陣快速冪) 解題報告 — 注:原文內容疑似混雜 Android 短信中心號碼修改日誌與大量微博鏈接