Lautstaerke mit Batch erhoehen Win10?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

hier eine Komplettlösung für die Steuerung der Lautstärke ohne Fremdprogramme.

Demo.cmd

  rem erzeuge Javascriptdatei
if not exist "%temp%\soundkeys.js" echo WshShell=new ActiveXObject('WScript.Shell');args=WScript.Arguments;if(args.length){if (args(0)==0){WScript.Echo('Mute');key=String.fromCharCode(0xad);count=1;}else if(args(0)^>0){WScript.Echo('Lauter');key=String.fromCharCode(0xaf);count=args(0);}else{WScript.Echo('Leiser');key=String.fromCharCode(0xae);count=-args(0);};for(i=0;i^<count;i++){WshShell.SendKeys(key)};};>"%temp%\soundkeys.js"

  rem ...Aufrufen
  rem leiser (10 Schritte)
cscript /nologo "%temp%\soundkeys.js" -10
timeout 10
  rem lauter (10 Schritte)
cscript /nologo "%temp%\soundkeys.js" 10
timeout 10
 rem mute
cscript /nologo "%temp%\soundkeys.js" 0
pause
  • positive Werte erhöhen die Lautstärke, negative senken sie
  • jeder Schritt sind 2 LautstärkeStufen
  • um eine definierte Lautstärke einzustellen , die die Lautstärke mit -50 Schritten auf 0 zwingen und anschließend erhöhen.
  rem Lautstärke auf 60
cscript /nologo "%temp%\soundkeys.js" -50
cscript /nologo "%temp%\soundkeys.js" 30
pause

hier nochmal das JavaScript in lesbarer Form:

WshShell=new ActiveXObject('WScript.Shell');
args=WScript.Arguments;
if(args.length){
    if (args(0)==0){
        WScript.Echo('Mute');
        key=String.fromCharCode(0xad);
        count=1;
    }else if(args(0)>0){
        WScript.Echo('Lauter');
        key=String.fromCharCode(0xaf);
        count=args(0);
    } else {
        WScript.Echo('Leiser');
        key=String.fromCharCode(0xae);
        count=-args(0);        
    };
    for(i=0;i<count;i++){WshShell.SendKeys(key)}
} 
Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
Erzesel  12.04.2020, 00:45

Verwendung von Makro:

if not exist "%temp%\soundkeys.js" echo WshShell=new ActiveXObject('WScript.Shell');args=WScript.Arguments;if(args.length){if (args(0)==0){WScript.Echo('Mute');key=String.fromCharCode(0xad);count=1;}else if(args(0)^>0){WScript.Echo('Lauter');key=String.fromCharCode(0xaf);count=args(0);}else{WScript.Echo('Leiser');key=String.fromCharCode(0xae);count=-args(0);};for(i=0;i^<count;i++){WshShell.SendKeys(key)};};>"%temp%\soundkeys.js"
   rem  Die  cscript  kommandozeile  ist  nicht gerade  lecker anzuschauen, deshalb kann man sie auch in ein Makro legen...
set "soundK=cscript /nologo "%temp%\soundkeys.js"" 

  rem Makro aufrufen...
%soundK% -20
%soundK% +50
%soundK% -30
%soundK% 0
pause
0

Mit sndvol.exe kannst Du die GUI dafür aufrufen, aber nicht direkt die Lautstärke über Kommandozeile setzen.

Dafür braucht es ein kleines Zusatztool wie NirCmd http://www.nirsoft.net/utils/nircmd.html

NickNolteYT 
Fragesteller
 11.04.2020, 18:17

habe gerade ein anderen Weg gefunden der funktioniert:

@if (@a==@b) @end /*

:: batch portion

@ECHO OFF

cscript /e:jscript "%~f0"

:: JScript portion */

var shl = new ActiveXObject("WScript.Shell");

for (var i=0; i<5; i++) {

  shl.SendKeys(String.fromCharCode(0xAF));

}

0

Diese Tasten gehören nicht zur Ausstattung einer Standard MF2 Tastatur.