C#,Winform 聲音、音量控制操作

需求:有一個TextBox密碼框,系統上安裝讀屏軟件,當用戶輸入密碼時,避免周圍人聽到,用戶需要裝密碼框中的聲音屏蔽,即TextBox輸入的內容不進行讀屏,用戶需要只有自己知道。爲了實現這一功能,

在網上找了好久,多數是調用系統的api,[DllImport("user32.dll")]或者是[DllImport("Winmm.dll")],使用

SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_DOWN)或者是

private static extern int waveOutSetVolume(int hwo, System.UInt32 pdwVolume))

都不是自己想達到的效果,最後參考

http://www.dreamincode.net/forums/topic/45693-controlling-sound-volume-in-c%23/#/

最後有一個dll程序提供下載,使用工具是VS005,將此程序生成dll,導入到自己的程序中,添加命名空間,

using VolumeControl.Library.Constants;

using VolumeControl.Library.Structs;

 

程序中調用代碼如下:

static int volumeValue = PC_VolumeControl.VolumeControl.GetVolume();

        private void btnShow_Click(object sender, EventArgs e)

        {

            this.label2.Text = PC_VolumeControl.VolumeControl.GetVolume().ToString();//顯示當前系統音量

            volumeValue = PC_VolumeControl.VolumeControl.GetVolume();

        }

 

        private void txtMessage_KeyDown(object sender, KeyEventArgs e)

        {

            PC_VolumeControl.VolumeControl.SetVolume(0);//設置音量大小爲0(最低音)

            this.label2.Text = PC_VolumeControl.VolumeControl.GetVolume().ToString();

        }

 

        private void txtMessage_Leave(object sender, EventArgs e)

        {

            PC_VolumeControl.VolumeControl.SetVolume(volumeValue);//恢復系統音量

            label2.Text = PC_VolumeControl.VolumeControl.GetVolume().ToString();

        }

 

發佈了123 篇原創文章 · 獲贊 14 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章