146 Aufrufe
Gefragt in Windows 11 von
Guten Mittag Leute!

Meine Nachbarn terrorisieren mich mit leisen Audiotönen. Aufgenommenes Gestammel, was sich immer wiederholt. Mit leiser Musik kann ich das übertönen aber die Ändern dann wiederum die Lautstärke von ihren Lautsprechern. Ändere ich dann wieder meine Lautstärke, egal ob leiser oder lauter, kann ich das wieder übertönen.

Könnte man ein Script schreiben, dass sich meine Lautstärke alle Zwei bis Vier Minuten automatisch ändert? Der Zeitabstand müsste zufällig variieren. Mal 188 Sekunden, mal 120 Sekunden, mal 139 Sekunden, mal 190 Sekunden, mal 240 Sekunden und die Lautstärke soll auch zwischen 15% und 75% pendeln. Ich meine aber den Lautstärkeregler von Windows selbst, also die Lautstärke allgemein, nicht von einen der einzelnen Anwendungen.

Danke schon mal!

1 Antwort

+1 Punkt
Beantwortet von xlking Experte (1.5k Punkte)

Hallo,

Gab's da nicht mal einen Witz?

"Meine Nachbarn hämmern die ganze Nacht laut gegen die Wand. Stört das nicht beim Einschlafen? Nee, aber beim Trompete üben!"

Mal im Ernst: Da habt ihr ja 'ne schöne Fehde am Laufen. Eigentlich sollte man sowas ja nicht unterstützen. Feuer mit Feuer zu bekämpfen hat noch nie etwas gebracht (außer bei geübten und erfahrenen Feuerwehrleuten). Sprich lieber mit deinem Nachbarn und nimm 'ne Kiste Bier mit. Wenn ihr euch erstmal verbrüdert habt, ist das Generve vielleicht vorbei.

Rein technisch allerdings gäbe es da schon eine Möglichkeit. Im Netz findet man doch tatsächlich VBA-Code für sowas. Hab lediglich den Zufallsgenerator ergänzt.

'Hauptcode von hier: https://wellsr.com/vba/2016/excel/use-vba-to-mute-unmute-volume-up-volume-down/

Option Explicit
Const VK_VOLUME_MUTE = &HAD
Const VK_VOLUME_DOWN = &HAE
Const VK_VOLUME_UP = &HAF

Dim Canceled As Boolean

#If VBA7 Then
    Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Declare PtrSafe Function KeyPressed Lib "user32.dll" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer
#Else
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Declare Function KeyPressed Lib "user32.dll" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer
#End If

Sub VolUp()
   keybd_event VK_VOLUME_UP, 0, 1, 0
   keybd_event VK_VOLUME_UP, 0, 3, 0
End Sub

Sub VolDown()
   keybd_event VK_VOLUME_DOWN, 0, 1, 0
   keybd_event VK_VOLUME_DOWN, 0, 3, 0
End Sub

Sub VolToggle()
   keybd_event VK_VOLUME_MUTE, 0, 1, 0
End Sub

Sub Lautstaerke_aendern()
  Dim vol As Byte, Start As Single, waittime As Integer, newvol As Byte, i As Byte
  Const maxtime = 30 'Maximale Zeit in Sekunden bis zur nächsten Änderung
  Const maxvol = 50 'Maximale Änderung
  
  Randomize Timer
 
  Start = Timer
  Do
    If Timer >= Start + waittime Or Timer < Start Then
      For i = 1 To 100
        Call VolDown
      Next i
      newvol = Int(Rnd * maxvol + 1)
      For i = 1 To newvol
        Call VolUp
      Next i
      waittime = Int(Rnd * maxtime + 1)
      Start = Timer
    End If
    DoEvents
  Loop Until KeyPressed(vbKeyEscape) Or Canceled
  
End Sub

Ob Excel VBA jetzt das richtige Programm dafür ist, sei dahingestellt. Vielleicht bietet jemand ja eine bessere Alternative. Aber nochmals: Du solltest es irgendwann nochmal auf die nette Art versuchen. Dein Nachbar denkt sicher ähnlich wie du und reagiert wiederum auf deine Musik.

Auf ein besseres Miteinander.
Mr. K.

...