程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> WinAPI: GetLogicalDriveStrings - 獲取系統中存在的邏輯驅動器字符串

WinAPI: GetLogicalDriveStrings - 獲取系統中存在的邏輯驅動器字符串

編輯:Delphi

//聲明:GetLogicalDriveStrings(
 nBufferLength: DWORD; {緩沖區大小}
 lpBuffer: PAnsiChar  {緩沖區}
): DWORD;

//緩沖區的結果是這樣儲存的: 譬如 A 驅動器會表示為 A:\ 後面 隔一個空字符, 依次向後;

//所以每個驅動器會占 4 字節.

//舉例:procedure TForm1.FormCreate(Sender: TObject);
var
 PStr: PChar;
 DriveArr: array[0..4*26] of Char; {每個驅動器 4 字節, 最多 26 個驅動器}
begin
 GetLogicalDriveStrings(SizeOf(DriveArr), DriveArr); {函數調用就這麼簡單}
 PStr := DriveArr;         {因為 PStr 是 #0 結尾的, 所以現在它指向的 是前 4 個字節}
 Memo1.Clear;           {清空 Memo}
 While PStr<>nil do
 begin
  Memo1.Lines.Add(PStr);
  Inc(PStr,StrLen(PStr)+1);    {字符串指針是可以運算的, 這裡相當於指針移 動 4 個位置, 而指向下一個}
  if(Byte(PStr[0]) = 0) then PStr := nil; {如果下一個的第一個字符就是空, 就 是沒有了, While 等著 nil 終止呢}
 end;
end;

//效果圖:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved