我需要控制vb.net中的主計算機卷。我搜索了網絡,並嘗試了所有我能找到的例子。這些都沒有工作。vb.net中的控制量
有沒有人有一些與vb.net 2010一起使用來控制音量的代碼片段?
感謝
giodamelio
我需要控制vb.net中的主計算機卷。我搜索了網絡,並嘗試了所有我能找到的例子。這些都沒有工作。vb.net中的控制量
有沒有人有一些與vb.net 2010一起使用來控制音量的代碼片段?
感謝
giodamelio
我找到了答案。其用途Nirsoft的的NirCmd(32-bit,64-bit)
Public Class Sound
Dim nircmd As String
Const MAXVOL As Integer = 65535
Public Sub New(ByVal nircmd_location As String)
nircmd = nircmd_location
End Sub
Public Sub setVol(ByVal level As Integer)
Dim p As New ProcessStartInfo
p.FileName = nircmd
p.Arguments = "setsysvolume " & (MAXVOL * (level/100)).ToString
Process.Start(p)
End Sub
End Class
然後可以使用的財產以後像
Dim vol As New Sound(path_to_nircmd)
vol.setVol(50)
我知道這個問題是真的老了,但是這個工作對我來說:
http://www.dotnetcurry.com/showarticle.aspx?ID=431
Imports System
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Namespace WindowsFormsApplication1
Partial Public Class Form1
Inherits Form
Private Const APPCOMMAND_VOLUME_MUTE As Integer = &H80000
Private Const APPCOMMAND_VOLUME_UP As Integer = &HA0000
Private Const APPCOMMAND_VOLUME_DOWN As Integer = &H90000
Private Const WM_APPCOMMAND As Integer = &H319
<DllImport("user32.dll")> _
Public Shared Function SendMessageW(ByVal hWnd As IntPtr, _
ByVal Msg As Integer, ByVal wParam As IntPtr, _
ByVal lParam As IntPtr) As IntPtr
End Function
Private Sub btnMute_Click(ByVal sender As Object, ByVal e As EventArgs)
SendMessageW(Me.Handle, WM_APPCOMMAND, _
Me.Handle, New IntPtr(APPCOMMAND_VOLUME_MUTE))
End Sub
Private Sub btnDecVol_Click(ByVal sender As Object, ByVal e As EventArgs)
SendMessageW(Me.Handle, WM_APPCOMMAND, _
Me.Handle, New IntPtr(APPCOMMAND_VOLUME_DOWN))
End Sub
Private Sub btnIncVol_Click(ByVal sender As Object, ByVal e As EventArgs)
SendMessageW(Me.Handle, WM_APPCOMMAND, _
Me.Handle, New IntPtr(APPCOMMAND_VOLUME_UP))
End Sub
End Class
End Namespace
I試過了,它似乎沒有任何影響。 – giodamelio 2011-01-20 23:20:34