好吧,我有一个问题,我已经尝试过这么辛苦,只是改变在C#中的主卷,似乎问题的回答者似乎在做火箭科学,或者他们只是添加一堆额外的垃圾。改变主卷在C#
有人可以告诉我如何让一个具有Volume {get {} set {}}属性的类让我改变主音量。一个要求是它必须在64位和32位操作系统上工作。没有别的,只是一个体积整数。
好吧,我有一个问题,我已经尝试过这么辛苦,只是改变在C#中的主卷,似乎问题的回答者似乎在做火箭科学,或者他们只是添加一堆额外的垃圾。改变主卷在C#
有人可以告诉我如何让一个具有Volume {get {} set {}}属性的类让我改变主音量。一个要求是它必须在64位和32位操作系统上工作。没有别的,只是一个体积整数。
你可以从下面的代码中得到一个想法,而不是将这些函数放入事件中,在属性设置器中调用它们。
这样做:
private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
private const int APPCOMMAND_VOLUME_UP = 0xA0000;
private const int APPCOMMAND_VOLUME_DOWN = 0x90000;
private const int WM_APPCOMMAND = 0x319;
private const int APPCOMMAND_MEDIA_PLAY_PAUSE = 0xE0000;
[DllImport("user32.dll")]
public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg,
IntPtr wParam, IntPtr lParam);
public Form1()
{
InitializeComponent();
}
private void btnPlayPause_Click(object sender, EventArgs e)
{
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
(IntPtr)APPCOMMAND_MEDIA_PLAY_PAUSE);
}
private void btnMute_Click(object sender, EventArgs e)
{
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
(IntPtr)APPCOMMAND_VOLUME_MUTE);
}
private void btnDecVol_Click(object sender, EventArgs e)
{
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
(IntPtr)APPCOMMAND_VOLUME_DOWN);
}
private void btnIncVol_Click(object sender, EventArgs e)
{
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle,
(IntPtr)APPCOMMAND_VOLUME_UP);
}
希望这有助于。
其实你基本上做了和其他人一样的表单和所有事情,但是谢谢,因为这看起来像它实际上是失败的,它很容易理解。 –
这不会通过Windows资源管理器运行,是吗?因为这非常可疑,不会与我正在做的事情一起工作。 –
哦,顺便说它不起作用。我设计的软件应该取代Windows资源管理器,所以这不起作用,因为它是消息传递资源管理器。 –
嗨,你已经按照这个教程? http://www.dreamincode.net/forums/topic/45693-controlling-sound-volume-in-c%23/ –