> ローカル ディスクの使用領域と空き領域をスタティック テキストに表示させたいのですが、どのようにコーディングすればよいのでしょうか?
> 教えて下さい。
>
> 使用領域を表示させるスタティックの ID : Static_Used
>
> 空き領域を表示させるスタティックの ID : Static_Empty
そのまんまのAPIがあります。
その名もGetDiskFreeSpaceEx関数(API)です。
使い方は以下のとおり。
コード: 全て選択
'■ディスクの空き容量を取得
Function GetDiskFree( ByVal lpDriveName As BytePtr) As QWord
Dim ds1 As ULARGE_INTEGER
Dim ds2 As ULARGE_INTEGER
Dim ds3 As ULARGE_INTEGER
Select Case GetDiskFreeSpaceEx( lpDriveName, ds1, ds2, ds3)
Case TRUE:
GetDiskFree = (ds3.HighPart * &H100000000) + ds3.LowPart
Case FALSE:
GetDiskFree = -1
End Select
End Function
'■ディスクの総容量を取得
Function GetFullDisk( ByVal lpDriveName As BytePtr) As QWord
Dim ds1 As ULARGE_INTEGER
Dim ds2 As ULARGE_INTEGER
Dim ds3 As ULARGE_INTEGER
Select Case GetDiskFreeSpaceEx( lpDriveName, ds1, ds2, ds3)
Case TRUE:
GetFullDisk = (ds2.HighPart * &H100000000) + ds2.LowPart
Case FALSE:
GetFullDisk = -1
End Select
End Function
'■ディスクの使用容量を取得
Function GetDiskUse( ByVal lpDriveName As BytePtr) As QWord
Dim fs As QWord
Dim us As QWord
GetDiskUse = -1
fs = GetDiskFree(lpDriveName)
If fs < 0 Then Exit Function
us = GetFullDisk(lpDriveName)
If us < 0 Then Exit Function
GetDiskUse = us - fs
End Function
Dim s As String '■表示文字列
Dim d As String '■ドライブ名
d = "C:"
s = "空き容量 = " + Str$(GetDiskFree(d))
s = s + Ex"\r\n使用容量 = " + Str$(GetDiskUse(d))
Print s
Input s
End
後はこれを参考にスタティックウィンドウに表示させてみてください。
情報がコントロールIDだけではメインウィンドウのハンドルが不明なため、
サンプルすら書けませんので。