จะเขียนโค้ดให้ตรวจสอบว่า มีไดร์ฟ D หรือไม่
กระทู้เก่าบอร์ด อ.Yeadram

 1,496   8
URL.หัวข้อ / URL
จะเขียนโค้ดให้ตรวจสอบว่า มีไดร์ฟ D หรือไม่

คือว่า หนูอยากหาวิธีตรวจสอบว่า ในเครื่องนั้น มี HDD ไดร์ฟ D: อยู่หรือไม่
หาก ไม่มี ก็ให้เป็น Then ค่ะ
แล้วหากไปตรวจเจอ CD-Rom ที่เป็นไดร์ฟ D: จะทำให้เห็นแตกต่างกันอย่างไรคะ

8 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R11479
เอาไปดัดแปลงต่อยอดเอาเองนะครับ
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Public Const DRIVE_REMOVABLE = 2
Public Const DRIVE_FIXED = 3
Public Const DRIVE_REMOTE = 4
Public Const DRIVE_CDROM = 5
' ----------------------------------------------------------------------

Sub chDrive()
Dim Y As Long
Dim X As Integer
For I = 0 To 25
Y = GetDriveType(Chr(I + 65) & ":\")
Debug.Print Chr(I + 65) & ":\ = " & DrType(Y) & vbTab & Y
Next
End Sub

Function DrType(dr As Long) As String
    Select Case dr
        Case DRIVE_REMOVABLE
            DrType = "ฟลอบปี้ดิสก์"
        Case DRIVE_FIXED
            DrType = "ฮาร์ดดิสก์"
        Case DRIVE_REMOTE
            DrType = "เน็ตเวิร์คไดรว์"
        Case DRIVE_CDROM
            DrType = "ซีดีรอม"
        Case DRIVE_RAMDISK
            DrType = "แรมดิสก์"
    End Select
End Function
2 @R11480
sub chDrive
ผมรีบไปหน่อย อิอิ
ผมประกาศตัวแปร integer โดย X
แต่เวลาเอาไปเขียนในลูป กลับอ้างเป็นตัวแปร I (ไอ)
เอาเป็นว่าขอให้เข้าใจว่ามันคือตัวเดียวกันนะครับ ผมไม่อยากแก้ไขโพสต์ เพราะถ้าแก้ไข ตัวหนังสือจะจัดระเบียบใหม่ จะอ่านยากครับ
3 @R11481
ขอบคุณค่ะอาจารย์
หนูจะลองเอาไปทำดูนะคะ ติดขัดประการใด จะขอรบกวนเพิ่มเติมอีกนะคะ
ขอบคุณค่ะ
4 @R11482
พยายามศึกษาทำความเข้าใจแล้ว แต่ไปไม่รอด ไปต่อไม่ถูกค่ะอาจารย์
หนูไม่ทราบวิธีนำไปใช้ แล้วก็ ไม่ทราบว่าบรรทัดที่ใช้ตรวจสอบการมีอยู่ของไดร์ฟ D:\ หรือไม่ ว่าอยู่บรรทัดไหนค่ะ
ขอความกรุณาอาจารย์ ช่วยขยายความเพิ่มเติมให้อีกนิดนะคะ

ขอบคุณค่ะ
5 @R11483
Sub chDrive()
Dim Y As Long
Dim X As Integer
     For X = 0 To 25
           Y = GetDriveType(Chr(X + 65) & ":\")
           Debug.Print Chr(X + 65) & ":\ = " & DrType(Y) & vbTab & Y
     Next
End Sub


Y = GetDriveType(Chr(X + 65) & ":\")
หรือ Y = GetDriveType("D:\")
ถ้า Y คืนค่าออกมาเป็น 1 หมายความว่า ในเครื่องนี้ ไม่มี Drive D:

ถ้า Y คืนค่าออกมาเป็นอย่างอื่น แล้วอยากรู้ว่า เป็น Drive ชนิดไหน
ให้ส่ง Y เข้าไปเช็คในฟังก์ชั่น drType ต่อไปก็จะได้
ชนิดไดรฟว์ของ Y = drType(Y)
6 @R11484
อ๋อ..พอเห็นแนวทางประยุกต์แล้วค่ะอาจารย์

เดี๋ยวหนูจะลองไปทำดูนะคะ

ขอบคุณค่ะ
7 @R11485
อยู่แถวไหนครับเนี่ย น้ำไม่ท่วมเหรอ ยังเข้าเว็บบอร์ดได้อีกนะเนี่ย
ขยันทำงานจริงนะ
8 @R11486
แถวบ้านหนู น้ำท่วมนิดหน่อยค่ะอาจารย์..
ยังคงทำงานได้ปกติค่ะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3265s