2011-08-29 20 views
2

好吧,我有一個問題,我已經嘗試過這麼辛苦,只是改變在C#中的主卷,似乎問題的回答者似乎在做火箭科學,或者他們只是添加一堆額外的垃圾。改變主卷在C#

有人可以告訴我如何讓一個具有Volume {get {} set {}}屬性的類讓我改變主音量。一個要求是它必須在64位和32位操作系統上工作。沒有別的,只是一個體積整數。

+0

嗨,你已經按照這個教程? http://www.dreamincode.net/forums/topic/45693-controlling-sound-volume-in-c%23/ –

回答

0

你可以從下面的代碼中得到一個想法,而不是將這些函數放入事件中,在屬性設置器中調用它們。

這樣做:

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); 
} 

希望這有助於。

+0

其實你基本上做了和其他人一樣的表單和所有事情,但是謝謝,因爲這看起來像它實際上是失敗的,它很容易理解。 –

+0

這不會通過Windows資源管理器運行,是嗎?因爲這非常可疑,不會與我正在做的事情一起工作。 –

+0

哦,順便說它不起作用。我設計的軟件應該取代Windows資源管理器,所以這不起作用,因爲它是消息傳遞資源管理器。 –