arrowHome arrow FAQ arrow WinAPI arrow Jak sprawdzić czy dyskietka jest w napędzie Tuesday, 07 September 2010  



 
Google
Web winapi.org
Main Menu
Home
News
FAQ
Links
Download
Kontakt
FORUM

Artykuły
Podstawy
GDI i Multimedia
Kontrolki
inne
Winapi + asm
WinSock
Soft
Login Form
Login

Hasło

Zapamiętaj mnie
Nie pamiętasz hasła?
Nie masz konta? Załóż je sobie
Jak sprawdzić czy dyskietka jest w napędzie Drukuj E-mail
Oceny: / 8
KiepskiBardzo dobry 
Nadesłał Codeguy   
Sunday, 10 April 2005

Od razu nasuwa się odpowiedź (tak przy okazji, witam) - sprawdzić czy na dysku A znajduje się jakiś plik...hmm...są jednak dyskietki bez żadnych plików. Mimo wszystko trzeba wykonać na niej jakąś operacje, wywołać funckje, która coś zrobi i w przypadku błędu zwróci nam odpowiednią wartość (w przypadku, gdy dyskietka jest w napędzie i kiedy jej nie ma). Z pomocą przychodzi nam funkcja GetVolumeInformation (nie owijając w bawełnę powiem od razu, że służy do pobierania informacji o dyskach). Oto jej krótki opis:

BOOL GetVolumeInformation(
    LPCTSTR lpRootPathName, // adres dysku, woluminu
    LPTSTR lpVolumeNameBuffer, // adres zmiennej na nazwę dysku
    DWORD nVolumeNameSize, // długość powyżeszej zmiennej
    LPDWORD lpVolumeSerialNumber, // adres zmiennej na numer seryjny woluminu
    LPDWORD lpMaximumComponentLength, // adres zmiennej na systemową najdłuższą ścieżkę do pliku
    LPDWORD lpFileSystemFlags, // adres zmiennej na flagi systemowe
    LPTSTR lpFileSystemNameBuffer, // adres zmiennej na nazwę systemu plików
    DWORD nFileSystemNameSize  // długość powyżeszej zmiennej
   ) ;

Jak widzisz całkiem sporo można wyciągnąć informacji. Co do flag systemowych - ciekawskich odsyłam do helpa, trochę samodzielności panowie (i panie) ;) Przejdźmy jednak do sedna tematu:

DWORD dw_size ;
//----
if(!GetVolumeInformation("A:\", 0, 0, &dw_size, 0, 0, 0, 0))
MessageBox(hwnd, "Urządzenie nie dostępne!!!", "Błąd", MB_OK | MB_ICONWARNING) ;  
else
MessageBox(hwnd, "Urządzenie dostępne!!!", "Błąd", MB_OK | MB_ICONWARNING) ;

Jak widzisz nie pobieramy wszystkich informacji, tylko numer seryjny (chcę się tylko dowiedzieć, czy dyskietka jest w napędzie)...jeśli funkcji uda się odczytać numer (dysk jest w napędzie) zwraca true, w przeciwnym wypadku false. I to by było na tyle. Pozdrawiam

codeguy

Ostatnia aktualizacja ( Sunday, 10 April 2005 )
< Poprzedni   Następny >
Dodaj do ulubionych
Ustaw stronę startową
Ostatnio dodane
Popularne
 
top

www.winapi.org © 2003 - 2007