问题描述
|
如何通过VB.NET更改Windows扬声器的音量(主输出音量控制音量值)?我想要一种间接改变整个系统音量的方法,就像我们从Windows 7上的“音量控制”应用程序所做的那样
解决方法
从:
http://social.msdn.microsoft.com/Forums/vstudio/zh-CN/8308f020-b9e6-472c-aaac-93619a8a5a7d/vbnet-control-the-system-volume-mute-and-output-the-current-对用户级别?论坛= vbgeneral
Imports System.Runtime.InteropServices
Public Class Form1
<DllImport(\"user32.dll\",SetLastError:=True,CharSet:=CharSet.Auto)> Private Shared Function SendMessage(ByVal hWnd As IntPtr,ByVal Msg As UInteger,ByVal wParam As IntPtr,ByVal lParam As IntPtr) As IntPtr
End Function
Const WM_APPCOMMAND As UInteger = &H319
Const APPCOMMAND_VOLUME_UP As UInteger = &HA
Const APPCOMMAND_VOLUME_DOWN As UInteger = &H9
Const APPCOMMAND_VOLUME_MUTE As UInteger = &H8
Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
SendMessage(Me.Handle,WM_APPCOMMAND,&H30292,APPCOMMAND_VOLUME_UP * &H10000)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.Click
SendMessage(Me.Handle,APPCOMMAND_VOLUME_DOWN * &H10000)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button3.Click
SendMessage(Me.Handle,&H200EB0,APPCOMMAND_VOLUME_MUTE * &H10000)
End Sub
End Class
我一分钟就可以将它们放在一起。