简单控制音量大小及静音的方法
作者:admin 日期:2008-02-14
我是神舟本本,用FN+F3就是静音,FN+F5/F6就是音量增加/减少.
突然觉得是不是可以用程序实现呀.
因为发现按下的时候并不是像LCD亮度一样由硬件在响应,而是系统在响应.
于是就随便生成了一个EXE并用SPY++看了一下消息,嘿,还真是这样.
整理了一下,代码如下:
以后在简单音量控制的场合,这样就方便多了.
特别感谢坏,以及书林跋涉还有"中国程序员联盟2"群里的其他朋友帮忙找出了一些常量的声明
不过还是有两个常量不知道是哪个.....哎~~~先收上来再说吧
突然觉得是不是可以用程序实现呀.
因为发现按下的时候并不是像LCD亮度一样由硬件在响应,而是系统在响应.
于是就随便生成了一个EXE并用SPY++看了一下消息,嘿,还真是这样.
整理了一下,代码如下:
复制内容到剪贴板
程序代码

'新建EXE工程,添加三个按钮.
'按钮一是音量增加,按钮二是音量减少,按钮三是静音切换.
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Const WM_APPCOMMAND As Long = &H319
Private Const APPCOMMAND_VOLUME_UP As Long = 10
Private Const APPCOMMAND_VOLUME_DOWN As Long = 9
Private Const APPCOMMAND_VOLUME_MUTE As Long = 8
Private Sub Command1_Click()
'音量增加
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000
End Sub
Private Sub Command2_Click()
'音量减少
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_DOWN * &H10000
End Sub
Private Sub Command3_Click()
'静音
SendMessage Me.hwnd, WM_APPCOMMAND, &H200EB0, APPCOMMAND_VOLUME_MUTE * &H10000
End Sub
'按钮一是音量增加,按钮二是音量减少,按钮三是静音切换.
Option Explicit
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Const WM_APPCOMMAND As Long = &H319
Private Const APPCOMMAND_VOLUME_UP As Long = 10
Private Const APPCOMMAND_VOLUME_DOWN As Long = 9
Private Const APPCOMMAND_VOLUME_MUTE As Long = 8
Private Sub Command1_Click()
'音量增加
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000
End Sub
Private Sub Command2_Click()
'音量减少
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_DOWN * &H10000
End Sub
Private Sub Command3_Click()
'静音
SendMessage Me.hwnd, WM_APPCOMMAND, &H200EB0, APPCOMMAND_VOLUME_MUTE * &H10000
End Sub
以后在简单音量控制的场合,这样就方便多了.
特别感谢坏,以及书林跋涉还有"中国程序员联盟2"群里的其他朋友帮忙找出了一些常量的声明

不过还是有两个常量不知道是哪个.....哎~~~先收上来再说吧

评论: 3 | 引用: 0 | 查看次数: 1708


要进行完整的控制,还是要使用相关的API.
这里有一个比较全的类,可以实现全面控制,推荐:
http://xsoft.bokee.com/4780183.html
而我整理的这个技巧,在简单控制时应该能派上用场,不过完全的控制还是得用API
这里有一个比较全的类,可以实现全面控制,推荐:
http://xsoft.bokee.com/4780183.html
而我整理的这个技巧,在简单控制时应该能派上用场,不过完全的控制还是得用API



感谢!!
麦克风音量如何控制??
麦克风音量如何控制??
看了这个我顿悟了
Private Sub Command1_Click()
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000
…………………………………………………………………………………………………………………………………………
SendMessage Me.hwnd, WM_APPCOMMAND, &H30292, APPCOMMAND_VOLUME_UP * &H10000
End Sub