กระทู้เก่าบอร์ด อ.Yeadram
1,510 12
URL.หัวข้อ /
URL
ขอทราบโค้ดตรวขสอบว่าในเครื่องมีไดร์ฟ D:\ อยู่หรือไ
รบกวนขอความช่วยเหลือจากอาจารย์ทุกท่านด้วยค่ะ
คือหนูอยากได้โค้ดคำสั่งตรวจสอบว่า ปัจจุบันในเครื่องมี HDD. ไดร์ฟ D:\ อยู่หรือไม่
-หากมีไดร์ฟ D:\ อยู่ ก็ให้ทำงานต่อไป
-หากไม่มีไดร์ฟ D:\ ก็ให้ msg แจ้งเตือน และยกเลิกการทำงาน
ขอแถมอีกเรื่องหนึ่งนะคะ
-เราสามารถกำหนด Path ของ my documents
ที่สามารถนำไปใช้กับทุก Windows ได้หรือไม่/อย่างไรคะ
ขอความช่วยเหลือด้วยนะคะ ขอบคุณค่ะ
คือหนูอยากได้โค้ดคำสั่งตรวจสอบว่า ปัจจุบันในเครื่องมี HDD. ไดร์ฟ D:\ อยู่หรือไม่
-หากมีไดร์ฟ D:\ อยู่ ก็ให้ทำงานต่อไป
-หากไม่มีไดร์ฟ D:\ ก็ให้ msg แจ้งเตือน และยกเลิกการทำงาน
ขอแถมอีกเรื่องหนึ่งนะคะ
-เราสามารถกำหนด Path ของ my documents
ที่สามารถนำไปใช้กับทุก Windows ได้หรือไม่/อย่างไรคะ
ขอความช่วยเหลือด้วยนะคะ ขอบคุณค่ะ
12 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R22386
ขอบคุณค่ะอาจารย์
เดี๋ยวจะลองปรับใช้ดูนะคะ
หากไดร์ฟ D:\ มันเป็น DVD หรือ CD-Rom จะมีความหมายเดียวกันหรือเปล่าคะ
เดี๋ยวจะลองปรับใช้ดูนะคะ
หากไดร์ฟ D:\ มันเป็น DVD หรือ CD-Rom จะมีความหมายเดียวกันหรือเปล่าคะ
3 @R22387
หนูลองทำตามแล้ว Compile error ตามในรูปเลยค่ะอาจารย์
ไม่ทราบว่าหนูทำผิดตรงไหน
โปรดแนะนำด้วยค่ะอาจารย์

ไม่ทราบว่าหนูทำผิดตรงไหน
โปรดแนะนำด้วยค่ะอาจารย์
4 @R22388
แก้ไขรูป

5 @R22389
เรียนอาจารย์ TTT
หนูเจอข้อผิดพลาดแล้วค่ะ ผิดตรงที่หนูเอาโค้ด
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
ไปใส่ไว้ใน [Event Procedure] มันก็เลย Error
พอย้ายไปไว้ในโมดูลที่สร้างขึ้นใหม่ ก็ใช้ได้เรียบร้อยแล้วค่ะอาจารย์
หนูเจอข้อผิดพลาดแล้วค่ะ ผิดตรงที่หนูเอาโค้ด
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
ไปใส่ไว้ใน [Event Procedure] มันก็เลย Error
พอย้ายไปไว้ในโมดูลที่สร้างขึ้นใหม่ ก็ใช้ได้เรียบร้อยแล้วค่ะอาจารย์
6 @R22390
คือฟังก์ชั่น GetDrvieType เมื่อเรียกจะส่งค่ากลับเป็นตัวเลขมาคือ
1 = ไม่มีไดร์ฟ
2 = Removable ไดร์ฟแบบถอดเข้าออกได้ และฟลอบปี้ดิสก์
3 = Fixed ไดร์ฟฮาร์ดดิส
4 = Remote ไดร์ฟพวกเน็ตเวิร์ค ที่เราทำการ map
5 = CDROM
ุ6 = Ramdisk ไดร์ฟที่เราสร้างขึ้นโดยการแบ่ง Ram มาทำ
หากคุณต้องการนับว่าไดร์ฟ CDROM ถือว่าไม่มีไดร์ฟด้วยก็เพิ่มเงื่อนไขเป็น
Dim Drv as Long
Drv = GetDriveType("D:")
If Drv = 1 OR Drv = 5 Then
MsgBox "no supported drive found"
End If
ประมาณนี้ครับ
1 = ไม่มีไดร์ฟ
2 = Removable ไดร์ฟแบบถอดเข้าออกได้ และฟลอบปี้ดิสก์
3 = Fixed ไดร์ฟฮาร์ดดิส
4 = Remote ไดร์ฟพวกเน็ตเวิร์ค ที่เราทำการ map
5 = CDROM
ุ6 = Ramdisk ไดร์ฟที่เราสร้างขึ้นโดยการแบ่ง Ram มาทำ
หากคุณต้องการนับว่าไดร์ฟ CDROM ถือว่าไม่มีไดร์ฟด้วยก็เพิ่มเงื่อนไขเป็น
Dim Drv as Long
Drv = GetDriveType("D:")
If Drv = 1 OR Drv = 5 Then
MsgBox "no supported drive found"
End If
ประมาณนี้ครับ
7 @R22391
ขอบพระคุณอย่างยิ่งค่ะอาจารย์
8 @R22392
ขอรายงานผล
ยังไม่สำเร็จตามที่ต้องการเลยค่ะอาจารย์
หนูอยากให้ระบบมันตรวจสอบเฉพาะ ฮาร์ดดิสเท่านั้น ว่ามี่ไดร์ฟ D:\ อยู่หรือไม่
หากไดร์ฟ D:\ มันเป็น CD-Rom หรืออื่นๆ ก็ให้ถือว่า ไม่มีไดร์ฟ D:
หนูลองใส่ค่า 1-6 แล้ว ก็ยังไม่สำเร็จ โดยจะตอบสนองเฉพาะค่า =1 เท่านั้น
ค่า =2-6 นั้นไม่มีการตอบสนองใดๆเลยค่ะอาจารย์
ลองดัดแปลงปรับใช้
Dim Drv as Long
Drv = GetDriveType("D:")
If Drv = 1 OR Drv <> 5 Then
MsgBox "no supported drive found"
End If
แล้วก็ยังไม่ได้เช่นกันค่ะ
ยังไม่สำเร็จตามที่ต้องการเลยค่ะอาจารย์
หนูอยากให้ระบบมันตรวจสอบเฉพาะ ฮาร์ดดิสเท่านั้น ว่ามี่ไดร์ฟ D:\ อยู่หรือไม่
หากไดร์ฟ D:\ มันเป็น CD-Rom หรืออื่นๆ ก็ให้ถือว่า ไม่มีไดร์ฟ D:
หนูลองใส่ค่า 1-6 แล้ว ก็ยังไม่สำเร็จ โดยจะตอบสนองเฉพาะค่า =1 เท่านั้น
ค่า =2-6 นั้นไม่มีการตอบสนองใดๆเลยค่ะอาจารย์
ลองดัดแปลงปรับใช้
Dim Drv as Long
Drv = GetDriveType("D:")
If Drv = 1 OR Drv <> 5 Then
MsgBox "no supported drive found"
End If
แล้วก็ยังไม่ได้เช่นกันค่ะ
9 @R22393
อื่ม ถ้า HDD อย่างเดียว ก็ต้องเป็นค่า 3 ครับ คือถ้าไม่เท่ากับ 3 ก็ถือว่าไม่รองรับ
Dim Drv As Long
Drv = GetDriveType("C:")
If Drv <> 3 Then
MsgBox "no supported drive found"
End If
ประมาณนี้หรือเปล่าครับ
Dim Drv As Long
Drv = GetDriveType("C:")
If Drv <> 3 Then
MsgBox "no supported drive found"
End If
ประมาณนี้หรือเปล่าครับ
10 @R22394
คือว่า ถ้าไดร์ฟ D ที่มีอยู่ ไม่ไช่ฮาร์ดดิส
ก็ให้ถือว่า ไม่มีไดร์ฟ D ค่ะอาจารย์
เดี๋ยวเย็นนี้.หนูจะลองปรับแก้ดูใหม่นะคะ
ได้ผลอย่างไร จะรีบแจ้งให้ทราบเลยค่ะอาจารย์
ก็ให้ถือว่า ไม่มีไดร์ฟ D ค่ะอาจารย์
เดี๋ยวเย็นนี้.หนูจะลองปรับแก้ดูใหม่นะคะ
ได้ผลอย่างไร จะรีบแจ้งให้ทราบเลยค่ะอาจารย์
11 @R22395
ใส่คำสั่ง ที่ procedure ที่ต้องการตรวจสอบ
If FolderExists("D:") Then
MsgBox "FOUND"
Else
MsgBox "NOT FOUND"
End If
End Sub
Function FolderExists(strPath As String) As Boolean
On Error Resume Next
FolderExists = ((GetAttr(strPath) And vbDirectory) = vbDirectory)
End Function
ถ้าต้องการ ตรวจสอบ HARD DISK ด้วย ก็ประยุกต์ เองครับ
If FolderExists("D:") Then
MsgBox "FOUND"
Else
MsgBox "NOT FOUND"
End If
End Sub
Function FolderExists(strPath As String) As Boolean
On Error Resume Next
FolderExists = ((GetAttr(strPath) And vbDirectory) = vbDirectory)
End Function
ถ้าต้องการ ตรวจสอบ HARD DISK ด้วย ก็ประยุกต์ เองครับ
12 @R22397
ยอดเยี่ยมเลยค่ะอาจารย์ TTT
ปรับแก้ใหม่ตามที่ท่านแนะนำ
Dim Drv As Long
Drv = GetDriveType("D:")
If Drv <> 3 Then
MsgBox "no supported drive found"
End If
ได้ผลสำเร็จตามที่ต้องการแล้วค่ะอาจารย์
ขอบพระคุณอย่างสูงค่ะ
สำหรับคำแนะนำของอาจารย์ ditasilk นั้น หนูยังไม่ได้นำมาทดลองใช้
แต่ก็ขอขอบพระคุณ และจะขอนำเก็บไว้ทดลองใช้ในโอกาสต่อไปนะคะ
ขอขอบคุณอาจารย์ทั้งสองท่านที่กรุณาให้ความช่วยเหลือหนูค่ะ
ปรับแก้ใหม่ตามที่ท่านแนะนำ
Dim Drv As Long
Drv = GetDriveType("D:")
If Drv <> 3 Then
MsgBox "no supported drive found"
End If
ได้ผลสำเร็จตามที่ต้องการแล้วค่ะอาจารย์
ขอบพระคุณอย่างสูงค่ะ
สำหรับคำแนะนำของอาจารย์ ditasilk นั้น หนูยังไม่ได้นำมาทดลองใช้
แต่ก็ขอขอบพระคุณ และจะขอนำเก็บไว้ทดลองใช้ในโอกาสต่อไปนะคะ
ขอขอบคุณอาจารย์ทั้งสองท่านที่กรุณาให้ความช่วยเหลือหนูค่ะ
Time: 0.3929s
* ใช้ API แบบนี้ก็ได้ครับ
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
การเรียกใช้
If GetDriveType("D:") = 1 Then
MsgBox "No Drive"
End If
-เราสามารถกำหนด Path ของ my documents
ที่สามารถนำไปใช้กับทุก Windows ได้หรือไม่/อย่างไรคะ
* ใช้คำสั่ง
CurDir$()
หรือ
CreateObject("WScript.Shell").currentDirectory
ปรับใช้ดูครับ