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

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

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

微信交流群(請用微信掃碼)

        

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

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

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

卽讓整箇繫統(tǒng)靜音及取消靜音的代碼如下



------VBA 實現(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      ' 取得複選框狀態(tài)
Private Const BM_SETCHECK = &HF1      '設(shè)置複選框狀態(tài)
' Private Const BST_UNCHECKED = &00      設(shè)置複選框爲(wèi)未選中狀態(tài)
' Private Const BST_CHECKED = &01           設(shè)置複選框爲(wèi)選中狀態(tài)
Private Sub Command1_Click()
     Dim hwnd0 As Long      ' 用於記録“音量控製”程序的句柄
     Shell "sndvol32.exe"        ' 啟動“音量控製”程序
     hwnd0 = FindWindow(vbNullString, "主音量")
     Dim hwnd1 As Long     ' 用於記録“全部靜音”複選框句柄
     hwnd1 = FindWindowEx(hwnd0, 0&, "Button", "全部靜音(&M)")   ' 複選框的類名是"Button"
     Dim State As Long       ' 用於記録複選框狀態(tài),如果複選框處於未選中狀態(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)髮音
End Sub
分享
文章分類
聯(lián)繫我們
聯(lián)繫人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動訪問