PDA

View Full Version : dırve cdrom



behzadk
دوشنبه 10 اردیبهشت 1386, 20:04 عصر
چگونه میتونیم درایو cd rom را بدست بیاوریم

behzad_gh
دوشنبه 10 اردیبهشت 1386, 22:17 عصر
این کد لیست درایوهای سیستم رو نشون می‌ده . فقط باید یک کمبو باکس به فرمتون اضافه کنید.
البته من در خط چهارم از آخر شرط گذاشتم که فقط سی‌دی ‌رام رو نشون بده که می‌تونید اون رو تغییر دهید مثلا برای نمایش درایوهای سیستم خودتون باید بجای DRIVE_CDROM کلمه DRIVE_FIXED رو جایگزین کنید :



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

Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
Dim AllDrives(26) As String

Private Sub Form_Load()
Dim sAllDrives As String
Dim sDrvType As String
Dim sDrives() As String
Dim cnt As Long
Dim sBuff As String
sBuff = Space$((26 * 4) + 1)
If GetLogicalDriveStrings(Len(sBuff), sBuff) Then
sAllDrives = Trim$(sBuff)
End If
sAllDrives = Replace$(sAllDrives, Chr$(0), Chr$(32))
sDrives() = Split(Trim$(sAllDrives), Chr$(32))
For cnt = LBound(sDrives) To UBound(sDrives)
If GetDriveType(sDrives(cnt)) = DRIVE_CDROM Then
Combo1.AddItem sDrives(cnt)
End If
Next
End Sub

vb_nima
دوشنبه 10 اردیبهشت 1386, 22:19 عصر
با استفاده از FileSystemObject خیلی راحته
1) از منوی Project گزینه refrences را انتخاب کنید. در پنجره باز شده گزینه Microsoft scripting runtime را انتخاب کنید.
2) یک لیست باکس در روی فرم قرار بده.
3) برنامه زیر را بنویس.



Private Sub Form_Load()
Dim fso As New FileSystemObject
Dim d As Drive
For Each d In fso.Drives
If d.DriveType = CDRom Then
List1.AddItem d.Path
End If
Next
End Sub

در این برنامه از filesystemobject استفاده شده که توابعی را برای کار با فایلها و فولدرها و درایو ها در اختیار ما قرار میدهد.
در ایتدا یک متغیر از همان آبجکت تعریف می کنیم.
یک متغیر از نوع درایو .
و بعد برای کل درایوهای سیستم چک میکنیم که آیا از نوع cdrom است یا نه.
اگر میخواهید ببینید سی دی در درایو وجود دارد یا نه کافی است یک دستور if به صورت زیر به برنامه اضافه کنید



if d.isReady then
msgbox "cd vojoud darad"
end if

نوید ایمانی
شنبه 15 اردیبهشت 1386, 13:19 عصر
این رو بزار تو هر رویدادی که می خوای
If flg = 0 Then
retvalue = mciSendString("set CDAudio door open", returnstring, 127, 0)
flg = 1
Else
retvalue = mciSendString("set CDAudio door closed", returnstring, 127, 0)
flg = 0
End If