📄 volume.bas
字号:
Attribute VB_Name = "volume"
Type lVolType
v As Long
End Type
Type VolType
LV As Integer
RV As Integer
End Type
Dim leftVolume As Single, rightVolue As Single
Declare Function waveOutSetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
Declare Function waveOutGetVolume Lib "winmm.dll" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long
Public Function GetVol() As Single
Dim lVol As lVolType, vol As VolType, LV As Double, RV As Double
waveOutGetVolume 0, v
lVol.v = v
LSet vol = lVol
LV = vol.LV: If LV < 0 Then LV = 65535 + LV
leftVolume = 100 * (LV / 65535)
RV = vol.RV: If RV < 0 Then RV = 65535 + RV
rightVolume = 100 * (RV / 65535)
If RV > LV Then LV = RV
GetVol = LV / 65535
End Function
Public Sub SetVol(Level As Single)
Dim lVol As lVolType, vol As VolType, LV As Double, RV As Double
LV = Level * 65535: If LV > 32767 Then LV = LV - 65536
RV = Level * 65535: If RV > 32767 Then RV = RV - 65536
vol.LV = LV
vol.RV = RV
LSet lVol = vol
v = lVol.v
waveOutSetVolume 0, v
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -