AW: Systemlautstärke per Sendkeys ändern, Zahl per Inputbox
02.09.2023 10:05:45
Nepumuk
Hallo Dieter,
teste mal:
Option Explicit
Private Declare PtrSafe Function SendMessageA Lib "user32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal wMsg As Long, _
ByVal wParam As LongPtr, _
ByRef lParam As Any) As LongPtr
Private Const APPCOMMAND_VOLUME_MUTE As Long = &H80000
Private Const APPCOMMAND_VOLUME_UP As Long = &HA0000
Private Const APPCOMMAND_VOLUME_DOWN As Long = &H90000
Private Const WM_APPCOMMAND As Long = &H319
Public Sub Lautstaerke()
'Systemlautsärke setzen. Schrittweite ist jeweils 2
Dim strInput As String
Dim lngIndex As Long
Do
strInput = InputBox("Lautstärke von 0 bis 100 eingeben.", "Eingabe")
If StrPtr(strInput) = 0 Then Exit Sub
If Val(strInput) >= 0 And Val(strInput) = 100 Then Exit Do
Call MsgBox("Bitte nur Zahlen zwischen 0 und 100 eingeben.", vbExclamation, "Hinweis")
Loop
For lngIndex = 1 To 50
'Lautstärke auf 0 setzen
Call SendMessageA(CLngPtr(Application.hwnd), WM_APPCOMMAND, 0^, ByVal APPCOMMAND_VOLUME_DOWN)
Next
For lngIndex = 1 To Val(strInput) / 2
'Lautstärke setzen
Call SendMessageA(CLngPtr(Application.hwnd), WM_APPCOMMAND, 0^, ByVal APPCOMMAND_VOLUME_UP)
Next
End Sub
Gruß
Nepumuk