0

تشخيص درايو سي دي در ويژوال بيسيک

 
papari
papari
کاربر برنزی
تاریخ عضویت : دی 1387 
تعداد پست ها : 314
محل سکونت : تهران

تشخيص درايو سي دي در ويژوال بيسيک

چگونه مي توان درايو (يا درايوهاي) سي دي را توسط وي بي تشخيص داد؟
براي اينکار از دو تابع از کتابخانه kernel32 به نامهاي GetLogicalDriveStrings و GetDriveType استفاده مي شود. اين دو تابع را بصورت زير declare کنيد:
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
سپس ابتدا متغير allDrives را که رشته اي 64 کاراکتري از space است، بصورت زير تعريف کنيد:
allDrives$ = Space$(64)
حال با استفاده از تابع GetLogicalDriveStrings ليست کليه درايوهاي سيستم را استخراج مي کنيم:
ret& = GetLogicalDriveStrings(Len(allDrives$), allDrives$)
allDrives$ = Left$(allDrives$, ret&)
حال با استفاده از يک حلقه و چک کردن درايوها با استفاده از تابع GetDriveType مي توانيم تشخيص دهيم اين درايو مربوط به سي دي است يا نه. براي اينکار اگر مقدار بازگشتي تابع به ازاي يک درايو برابر عدد 5 باشد، آن درايو سي دي است.
Do
   pos% = InStr(allDrives$, Chr$(0))
     If pos% Then
     JustOneDrive$ = Left$(allDrives$, pos% - 1)
     allDrives$ = Mid$(allDrives$, pos% + 1, Len(allDrives$))
     DriveType& = GetDriveType(JustOneDrive$)
             If DriveType& = 5 Then
                MsgBox UCase$(JustOneDrive$) & " is a CD Drive"
             End If
     End If
Loop Until allDrives$ = ""
 
منبع: egoldcity.com
و این جهان پر از صدای پای مردمی است که همچنانکه تو را می بوسند در ذهن خود طناب دارت را می بافند.
پنج شنبه 24 بهمن 1387  5:21 AM
تشکرات از این پست
دسترسی سریع به انجمن ها