Virtual Basic Script Lautstärke ändern

panzli

Banned
Registriert
Mai 2019
Beiträge
110
Hallo,ich möchte ,dass meine Vbs-Datei in Windows die Laustärke voll aufdreht und stoppt wenn es bei 100 ist aber wieder anfängt wenn man es wieder zurückstellen möchte.

Do
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys(chr(&hAF))
Loop

(Soweit bin ich mit meinen "Wissen über VBS"gekommen nur da habe ich das Problem das es immer weiter geht und eben nicht bei 100 aufhört.)

Danke schonmal im vorraus.
 
Ja, ich meine schon VBScript aber mit dem Script fehlt die Lautstärke ja nur um 1 Hoch und nicht auf 100...
 
panzli schrieb:
Soweit bin ich mit meinen "Wissen über VBS"gekommen nur da habe ich das Problem das es immer weiter geht und eben nicht bei 100 aufhört.
Nachvollziehbar. Woher soll der Skript-Interpreter wissen, dass du irgendwann aufhören willst? Wenn eine Schleife keine Abbruchbedingung hat, läuft sie nun mal endlos. Daher auch der Begriff Endlosschleife. Du müsstest also entweder irgendwie die aktuelle Lautstärke abfragen und auf max prüfen oder du lässt die Schleife eben immer 100x laufen damit im worst case bei aktuell=0 noch die 100 max rauskommen.
 
set oshell = createobject ("wscript.shell") oshell.run "sndvol32" oshell.appactivate "Lautstärkeregler" WScript.sleep 600 oshell.appactivate "Lautstärkeregler" oshell.sendkeys "{tab}" wscript.sleep 600 Für X = 1 bis 500 oshell.sendkeys "^ {UP}" oshell.appactivate "Lautstärkeregler" Weiter wscript.sleep 600 oshell.appactivate "Lautstärkeregler" wscript.sleep 600 oshell.sendkeys "% {f4}"

Hier meckert Windows und sagt bei Zeichen 45 würde ein Anweisungsende erwartet werden.
 
Dann schau mal einfach hier rein.
Wenn du dort die vorletzte Zeile 5x wiederholst (siehe Anweisung PGUP), dann kannst du selbst aus dem gemuteten Zustand die 100% Lautstärke bekommen.
Habs selbst getestet und es funktioniert!
 
Vielen Dank schonmal ,aber ich möchte jetzt nur noch ,dass wenn ich sie z.b. auf 50 zurückstelle ,dass es automatisch wieder auf 100 geht.
Hier mal in dummen Form:
Lautstärke bis maximum
wenn maximum =Stopp
wenn wieder >100=auf maximum
 
Einfach mal testen zu aufwendig für dich?
Egal wie deine Lautstärke gestellt ist, mit dem Beispiel aus Post #7 wird immer die Lautstärke auf 100% gestellt!
 
ds212+ schrieb:
Einfach mal testen zu aufwendig für dich?
Egal wie deine Lautstärke gestellt ist, mit dem Beispiel aus Post #7 wird immer die Lautstärke auf 100% gestellt!
ds212+ schrieb:
Einfach mal testen zu aufwendig für dich?
Egal wie deine Lautstärke gestellt ist, mit dem Beispiel aus Post #7 wird immer die Lautstärke auf 100% gestellt!
Ja aber nachdem der Befehl durch ist kann man es eben muten ...
 
Darf man mal fragen was das eigentlich für einen Grund hat?
Taste kaputt und drückt dauernd oder warum stellt sich das von allein niedriger?

panzli schrieb:
Ja aber nachdem der Befehl durch ist kann man es eben muten ...

Wiederholend ausführen lassen?
https://docs.microsoft.com/de-de/dotnet/visual-basic/language-reference/statements/do-loop-statement

rocketworm schrieb:
Wozu brauchst du das überhaupt? Einfach auf 100% stellen und gut ist...

Das einzige was ich noch akzeptieren könnte wäre eine Uniaufgabe, für nichts anderes erkenne ich da einen Sinn.
Bei ersterem wäre die Hilfe dann eh' nur eingeschränkt empfehlenswert - durchmogeln nutzt nichts und gerade Code findet man vortrefflich via Suchmaschinen ;)
 
Ich denke auch, dass erstmal die Beweggründe dargelegt werden sollten. Im worst case ist das hier ein klassisches XY-Problem und der TE möchte eigentlich etwas völlig anderes - X - , weiß aber nicht wie X geht, denkt sich eine Alternativlösung aus - Y - und versucht nun mit Hilfe des Forums Y zu lösen und nicht X.
 
  • Gefällt mir
Reaktionen: UNDERESTIMATED
das_mav schrieb:
Das einzige was ich noch akzeptieren könnte wäre eine Uniaufgabe, für nichts anderes erkenne ich da einen Sinn.
Bei ersterem wäre die Hilfe dann eh' nur eingeschränkt empfehlenswert - durchmogeln nutzt nichts und gerade Code findet man vortrefflich via Suchmaschinen ;)
Da gebe ich dir absolut recht. Ein wenig mehr Hintergrundinfo zum warum und was bezweckt wird wäre da generell ganz gut um sinnvoll weiter zu helfen.
 
Hier nochmal eine einfache Lösung für das "Problem", wenn es schon per VBS-Script funktionieren muss.
Das Tool NirCmd herunterladen und das "Problem" wie folgt alle 10 Sekunden lösen... :D

do
Set oShell = CreateObject("WScript.Shell")
oShell.Run "nircmd.exe mutesysvolume 0" ' Ton einschalten
oShell.Run "nircmd.exe changesysvolume 65535" ' Maximale Lautstärke einstellen
wscript.sleep 10000 ' 10 Sekunden warten
loop
 
Am Ende geht es evtl. nur um die automatische Lautstärkenabsenkung von Windows für VoIP-Anwendungen.... Die kann man nämlich ganz einfach abschalten ;)
 
  • Gefällt mir
Reaktionen: areiland
Raijin schrieb:
Am Ende geht es evtl. nur um die automatische Lautstärkenabsenkung von Windows für VoIP-Anwendungen.... Die kann man nämlich ganz einfach abschalten ;)
Vielen dank leider nützt mir das nichts weil ich es für ein anderes Zweck als Voice-over-IP brauche..
 
@panzli
Es bleiben also noch 2 Fragen offen:

1. tut mein letzter Vorschlag bei dir wie gewünscht?
2. für welchen Zweck war es notwendig?

Feedback erwünscht! 😄
 
@ds212+
Vielen dank,aber ich suche eine Lösung ohne extra Programme....
 
Ein VBScript ist aber sogesehen auch ein extra Programm. Nach wie vor ist nicht so ganz klar was du überhaupt vorhast bzw. was deine Beweggründe sind. Es ist denkbar schwierig, dir dann weiterzuhelfen.

Skriptsprachen sind nicht für alle Zwecke geeignet, was man ja allein schon daran sieht, dass bei den meisten vorgestellten Skripts einfach nur Tastendrücke simuliert werden. Das ist in etwa vergleichbar mit einem Makro-Recorder, der die Mausbewegungen aufzeichnet und abspielt :freak:.
 
Zurück
Oben