好吧,我有一個問題,我已經嘗試過這麼辛苦,只是改變在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/ –