Jak rozpoznać typ napędu
code
Poniższy kod wyświetla informacje na temat wszystkich napędów zainstalowanych w systemie (rozpoznaje ich typ). Informacje o napędzie wyświetlane są w komponencie TComboBox
- należy więc takowy umieścić na formularzu.
Procedura realizująca zadanie wygląda następująco:
procedure TForm1.Dyski;
var
I, Typ: Integer;
Dysk, Nazwa: String;
begin
for I := Ord('A') to Ord('Z') do
begin
Dysk := Chr(I) + ':';
Typ := GetDriveType(PChar(Dysk));
case Typ of
0: Nazwa := Dysk + ' Nie można określić typu urządzenia';
1: Nazwa := Dysk + ' Na urządzeniu nie istnieje katalog źródłowy';
Drive_Removable: Nazwa := Dysk + ' Dyskietka 3,5';
Drive_Fixed: Nazwa := Dysk + ' Dysk twardy';
Drive_Remote: Nazwa := Dysk + ' Dysk sieciowy';
Drive_Cdrom: Nazwa := Dysk + ' Napęd CD-ROM';
Drive_Ramdisk: Nazwa := Dysk + ' Dysk pamięciowy (RAM disk)';
end;
if not ((Typ = 0) or (Typ = 1)) then
ComboBox1.Items.AddObject(Nazwa, Pointer(I));
end;
ComboBox1.Text := ComboBox1.Items[0];
end;
Zamiast komponentu TComboBox możesz użyć również TListBox
Zobacz też:
Nie wyświetla napędu z którego jest uruchomiony program.
Spróbuj zamiast:
Dysk:=I+':';
dołożyć BackSlash '\'.
Dysk:=I+':\';
lub jeśli w ComboBox'ie nie chcesz znaku'\' to przy wywołaniu funkcji:
Typ := GetDriveType(PChar(Dysk+'\'));
Jeszcze jedna taka mala drobna uwaga, jak chcecie zeby procedura dzialala na 98 to podawajcie jako poczatkowa litere dysku male 'a' i jako koncowa male 'z' bo zauwazylem ze w 98 ma to znaczenie :)
Bardzo fajny kodzik, ale mam z nim jeden problem. W ComboBoxie nie wyskakuje mi jedna partycja dysku twardego (wyświetla mi partycje c,d,f bez e). Co mam o tym myśleć ?? Reszta chodzi genialnie :D
Takie dwie uwagi (nie dotyczące poprawności kodu).
var
I: Char;
begin
for I := 'A' to 'Z' do
begin
Dysk := I + ':';
:)