Szybkie szukanie
Słowo kluczowe:
sobota, 11 luty 2012
Start arrow Tips & Tricks arrow Jako skopiować dyskietkę na dyskietkę?
Jako skopiować dyskietkę na dyskietkę? Drukuj E-mail
Napisał Administrator   
poniedziałek, 03 październik 2005
W module kodu deklarujemy funkcje API, ktora sprawdza rodzaj napedu:

Declare Function GetDriveType Lib "Kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

W?a?ciwa funkcja, ktorej parametrami sa litery
dysku ?ród?owego i docelowego ma posta?:

Function CopyDisk(literaZrodla As String, literaCelu As String)

Dim DriveLetter As String, DriveNumberA As Long, DriveNumberB As Long, DriveTypeA As Long, DriveTypeB As Long
Dim RetVal As Long, RetFromMsg As Long

'Przekszta?cenie litey ?ród?a (np. A) do formatu np. A:\
DriveLetter = Left(UCase(literaZrodla), 1) & ":\"

'Przypisanie zmiennej DriveNumberA liczby (0 lub 1 w zale?no?ci od stacji A lub B),
'która b?dzie potrzebna jako parametr przy kopiowaniu z wykorzystaniem biblioteki diskcopy.dll
'(patrz ni?ej)
DriveNumberA = (Asc(DriveLetter) - 65)

'Identyfikacja rodzaju nap?du przy u?yciu zadeklarowanej funkcji API
DriveTypeA = GetDriveType(DriveLetter)

'Te same operacje na parametrze literaCelu
DriveLetter = Left(UCase(literaDyskuDocelowego), 1) & ":\"
DriveNumberB = (Asc(DriveLetter) - 65)
DriveTypeB = GetDriveType(DriveLetter)

'Je?eli funkcja API zwróci w obu przypadkach warto?? 2, oznacza to, ?e oba nap?dy
'to stacje dyskietek
If (DriveTypeA = 2) And (DriveTypeB = 2) Then

'Wtedy nast?pi kopiowanie z u?yciem biblioteki diskcopy.dll, która potrzebuje tak?e dwóch
'parametrów które otrzymali?my wy?ej z literyZrodla i literaCelu
RetVal = Shell("rundll32.exe diskcopy.dll,DiskCopyRunDll " & DriveNumberA & "," & DriveNumberB, 1)
Else

'Gdy funkcja API nie potwierdzi?a jednak, ?e oba nap?dy to stacje dyskietek pojawi si?
'komunikat o niemo?liwo?ci kopiowania
RetFromMsg = MsgBox("Tylko dyskietki" & vbCrLf & "mog? by? kopiowane !", 64, "QuickCopy?")
End If

End Function

Komentarze

Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie.
Tylko zarejestrowani użytkownicy mogą pisać komentarze.

Powered by AkoComment 2.0!

< Poprzedni   Następny >

Menu główne
Start
Teoria
VB.NET
Api
Tips & Tricks
Warsztat
VBMagazine
Pliki
Forum
Literatura
Ankiety
Linki
Szukaj
Wyślij program
Napisz do nas
Redakcja
Logowanie
Login

Hasło

Zapamiętaj mnie
Nie pamiętasz hasła?
Nie masz konta? Załóż je sobie
Gościmy
Aktualnie jest 39 gości online
Statystyka
Użytkownicy: 11345
Newsy: 237
Odnośniki: 48
Odwiedzających: 4327457
Mambo is Free Software released under the GNU/GPL License.