www.demi-s.narod.ru

Delphi
Статьи:

· Интерфейс

· WinAPI

· Компоненты

· Базы данных

· ShellAPI



WinAPI


Получение всех дисков в системе без TDriveComboBox

Этот код возвращает список всех логических дисков на любой системе. Используйте этот код для более быстрых результатов, чем TDriveComboBox.

function GetListOfLogicalDrives: TStringList;
var
    lpDrives: array [0..500] of char;
    lpStrTmp: string;
    iiDCount, iiResult: integer;
begin
    Result := TStringList.Create;
    lpStrTmp := '';
    iiResult := GetLogicalDriveStrings(500, lpDrives);
    for iiDCount := 0 to iiResult do
        begin
            if lpDrives[iiDCount] <> #0 then
                begin
                    lpStrTmp := lpStrTmp + lpDrives[iiDCount]; 
                    if Length(lpStrTmp) = 3 then
                        begin
                            Result.Add(lpStrTmp);
                            lpStrTmp := '';
                        end;
                end;
        end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    ListBox1.Items := GetListOfLogicalDrives;   //Помещаем диски в список//
end;

Если Вы хотите получить иконку каждого диска (для добавления в TListView), Вы можете использовать SHGetFileInfoShellApi.pas).

Если Вы хотите отфильтровать некоторые типы дисков, Вы можете использовать GetDriveType Windows API.


Hosted by uCoz