office交流網(wǎng)--QQ交流群號(hào)及微信交流群

Access培訓(xùn)群:792054000         Excel免費(fèi)交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請(qǐng)用微信掃碼)

        

Access VBA 使用API 關(guān)閉系統(tǒng)聲音和打開系統(tǒng)聲音的 方法

2017-09-08 09:30:00
zstmtony
原創(chuàng)
4231

Access VBA 使用API 關(guān)閉系統(tǒng)聲音和打開系統(tǒng)聲音的 方法

即讓整個(gè)系統(tǒng)靜音及取消靜音的代碼如下



------VBA 實(shí)現(xiàn) 源碼--------------------
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hwnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const BM_GETCHECK = &HF0      ' 取得復(fù)選框狀態(tài)
Private Const BM_SETCHECK = &HF1      '設(shè)置復(fù)選框狀態(tài)
' Private Const BST_UNCHECKED = &00      設(shè)置復(fù)選框?yàn)槲催x中狀態(tài)
' Private Const BST_CHECKED = &01           設(shè)置復(fù)選框?yàn)檫x中狀態(tài)
Private Sub Command1_Click()
     Dim hwnd0 As Long      ' 用于記錄“音量控制”程序的句柄
     Shell "sndvol32.exe"        ' 啟動(dòng)“音量控制”程序
     hwnd0 = FindWindow(vbNullString, "主音量")
     Dim hwnd1 As Long     ' 用于記錄“全部靜音”復(fù)選框句柄
     hwnd1 = FindWindowEx(hwnd0, 0&, "Button", "全部靜音(&M)")   ' 復(fù)選框的類名是"Button"
     Dim State As Long       ' 用于記錄復(fù)選框狀態(tài),如果復(fù)選框處于未選中狀態(tài),則返回0,選中狀態(tài)返回1
     State = SendMessage(hwnd1, BM_GETCHECK, ByVal CLng(0), ByVal CLng(0))
     SendMessage hwnd1, BM_SETCHECK, 1, 0 '使系統(tǒng)靜音
     SendMessage hwnd1, BM_SETCHECK, 0, 0 '使系統(tǒng)發(fā)音
End Sub
分享
文章分類
聯(lián)系我們
聯(lián)系人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動(dòng)訪問