ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 1018|ตอบกลับ: 0

[VB6] การหาเนื้อที่ทั้งหมด และยังคงเหลืออยู่ในแต่ละ Drive

[คัดลอกลิงก์]

213

กระทู้

301

โพสต์

2407

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
2407

โดยการเรียกใช้งาน Win32 API คือ SHGetDiskFreeSpace ซึ่งเราสามารถหาเนื้อที่ทั้งหมด และที่ยังคงเหลืออยู่ในแต่ละ Drive ได้ด้วย ...  แอดมินภูมิใจที่จะนำเสนอเทคนิค การส่งค่าคืนกลับมาจากฟังค์ชั่นได้มากกว่า 1 ค่าครับ พี่น้อง 5555+ ... ทำได้ไงล่ะเนี่ย

Run Time จะได้ทั้งพื้นที่ทั้งหมดและที่เหลืออยู่

จากฟังค์ชั่นที่จะได้เห็นต่อไปนี้ แอดมินให้มันคืนค่ากลับมา 2 ค่า ... หลักการคิดง่ายๆ ก็แค่อาศัยเครื่องหมายพิเศษสักตัวมาคั่นเอาไว้แค่นั้นเองครับ (ตัวอย่างนี้ใช้เครื่องหมาย Colon หรือ : เข้ามาช่วย) จากส่วนหลักที่เรียกใช้งานฟังค์ชั่น พอมันรับค่ากลับมา ก็ใช้คำสั่ง (หรือฟังค์ชั่น) Split เพื่อแยกข้อมูลออกจากกันแค่นี้เอง ...

  1. Option Explicit

  2. Private Declare Function SHGetDiskFreeSpace Lib "shell32" Alias "SHGetDiskFreeSpaceA" ( _
  3.     ByVal pszVolume As String, _
  4.     pqwFreeCaller As Currency, _
  5.     pqwTot As Currency, _
  6.     pqwFree As Currency _
  7.     ) As Long

  8. Private Sub Form_Load()
  9.     '// กำหนดตัวแปรแบบ Array เพื่อจะแยกชุดข้อมูลออกจากกัน
  10.     Dim DSpace() As String
  11.     '// ระบุ Drive ที่ต้องการไปยังฟังค์ชั่น
  12.     '// เกิดการรับค่าเข้ามา 2 ชุด ซึ่งจะคั่นด้วยเครื่องหมาย Comma หรือ :
  13.     '// จากนั้นใช้คำสั่ง Split เพื่อทำการแยกชุดข้อมูลทั้ง 2 ออกจากกันในลักษณะของ Array
  14.     DSpace = Split(CalDiskSpace("E:"), ":")
  15.     MsgBox _
  16.         "Total Space: " & Format$(DSpace(0), "###,###,###,##0") & " Bytes" & vbCrLf & _
  17.         "Free Space: " & Format$(DSpace(1), "###,###,###,##0") & " Bytes"
  18.     End
  19. End Sub

  20. Public Function CalDiskSpace(strDrv As String) As String
  21.     Dim FreeCaller As Currency, TotalSpace As Currency, FreeSpace As Currency
  22.     SHGetDiskFreeSpace strDrv, FreeCaller, TotalSpace, FreeSpace
  23.     '// ส่งค่าคืนกลับไป 2 ชุด ซึ่งจะคั่นกันด้วยเครื่องหมาย Colon หรือ :
  24.     CalDiskSpace = TotalSpace * 10000 & _
  25.                                     ":" & _
  26.                                     FreeSpace * 10000
  27. End Function
คัดลอกไปที่คลิปบอร์ด
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2020-1-22 03:16 , Processed in 0.276034 second(s), 5 queries , File On.

Powered by Discuz! X3.3 R20170401, Rev.54

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้