如何使用JScript或VBScript控制Windows系统卷?

我想从JScript或VBScript脚本控制Windows系统的音量。 有任何想法吗?

另外,如果静音,可以取消静音系统音量吗?

Solutions Collecting From Web of "如何使用JScript或VBScript控制Windows系统卷?"

要使系统音量静音或取消静音,可以使用WshShell.SendKeys方法模拟静音按键:

 var oShell = new ActiveXObject("WScript.Shell"); oShell.SendKeys(Chr(&HAD)); 

至于从一个脚本改变音量水平,有一个解决方案,涉及一些Windows自动化,如启动系统卷小程序和模拟适当的键盘快捷键,但我不认为它是可靠的。 因此,我建议您使用一些能够更改音量级别的外部实用程序,并从脚本中调用它。 例如,您可以使用免费的NirCmd工具:

 var oShell = new ActiveXObject("WScript.Shell"); // Increase the system volume by 20000 units (out of 65535) oShell.Run("nircmd.exe changesysvolume 20000"); // Decrease the system volume by 5000 units oShell.Run("nircmd.exe changesysvolume -5000"); 

NirCmd还可以静音或取消静音系统音量:

 var oShell = new ActiveXObject("WScript.Shell"); oShell.Run("nircmd.exe mutesysvolume 0"); // unmute oShell.Run("nircmd.exe mutesysvolume 1"); // mute oShell.Run("nircmd.exe mutesysvolume 2"); // switch between mute and unmute 

在Windows上操作系统音量级别时无需安装其他软件,我可以看到的最佳方式是使用VBScript,其中一种方法如下:

切换静音:(以前的答案中已经提到)

 Set WshShell = CreateObject("WScript.Shell") WshShell.SendKeys(chr(&hAD)) 

增加音量:

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

降低音量:

 Set WshShell = CreateObject("WScript.Shell") WshShell.SendKeys(chr(&hAE)) 

这应该适用于大多数现代Windows机器。 我已经在Windows 7和8.1上测试过了,即使在LC中使用“do as”运行,也可以正常工作,因此可以将这些脚本嵌入到可执行文件中并运行,而无需将它们另存为单个文件。

在Windows 7上,我可以通过使用WScript来控制按键。

 set oShell = CreateObject("WScript.Shell") oShell.run"%SystemRoot%\System32\SndVol.exe" WScript.Sleep 1500 oShell.SendKeys"{TAB} " ' Tab to the mute and press space oShell.SendKeys"%{F4}" ' ALT F4 to exit the app. 

我将它保存到一个名为Mute-Sound.vbs的文件中,并在桌面上创建了一个快捷键来指定一个快捷键。 CTRL + ALT + F12 由于某些原因,键盘快捷键只有在桌面上才能正常工作,所以我不确定键盘快捷键有多可靠。

http://www.nilpo.com/2008/11/windows-xp/mute-sound-volume-in-wsh/他使用多媒体键盘静音键的按键。 聪明;-)

 Set WshShell = CreateObject("WScript.Shell") WshShell.SendKeys(chr(&hAD)) 

Misty庄园的答案也适用于Windows Vita。 这个,我从字面上来看,在某种意义上也是这样。

 set oShell = CreateObject("WScript.Shell") oShell.run"%SystemRoot%\System32\SndVol.exe" 'Runs The Master Volume App. WScript.Sleep 1500 'Waits For The Program To Open oShell.SendKeys("{PGUP}") 'Turns Up The Volume 20, If It Is Muted Then It Will Unmute It oShell.SendKeys("{PGUP}") 'Turns Up The Volume 20 oShell.SendKeys("{PGUP}") 'Turns Up The Volume 20 oShell.SendKeys("{PGUP}") 'Turns Up The Volume 20 oShell.SendKeys("{PGUP}") 'Turns Up The Volume 20 oShell.SendKeys"%{F4}" ' ALT F4 To Exit The App. 

如果你想减少音量,你会做的

 oShell.SendKeys("{PGDN}") 'It Will Decrease The Volume By 20 

从浏览器窗口/网页内 – 绝对没有办法。 即使在技术上可行,浏览器沙箱安全也会禁止它。

从Windows脚本宿主(独立的.vbs或.js文件) – 没有办法,我知道。 根据这个问题 ,WMI也不能提供对此的控制。

我用nircmd.exe和vbscript一起来控制系统音量。

 Set objShell = CreateObject("WScript.Shell") If Not WScript.Arguments.Named.Exists("elevate") Then CreateObject("Shell.Application").ShellExecute WScript.FullName _ , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1 WScript.Quit End If objShell.Run("nircmd.exe setvolume 0 0 0") 'Set WshShell = WScript.CreateObject("WScript.Shell") 'WshShell.Popup "Success", "5", "MuteSpeaker" ' to successfully run this vbscript during log-off, nircmd.exe during should be present in "C:\Windows\System32" ' [cscript //X scriptfile.vbs MyArg1 MyArg2]