10

JScript または VBScript スクリプトから Windows システムの音量を制御したいと考えています。何か案は?

また、システム ボリュームがミュートされている場合、ミュートを解除できますか?

4

7 に答える 7

10

追加のソフトウェアをインストールせずに 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" を使用して実行しても問題なく動作するため、これらのスクリプトを実行可能ファイルに埋め込んで、個別のファイルとして保存しなくても実行できます。

于 2015-01-21T22:45:55.233 に答える
9

システム ボリュームをミュートまたはミュート解除するには、次の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
于 2010-02-07T09:14:54.800 に答える
2

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. 何らかの理由で、キーボード ショートカットはデスクトップ上にある場合にのみ機能するため、キーボード ショートカットがどれほど信頼できるかわかりません。

于 2012-08-21T12:22:52.253 に答える
2

Misty Manor's Answer は 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
于 2014-05-04T16:24:54.580 に答える
0

ブラウザー ウィンドウ/Web ページ内から - まったく方法がありません。技術的に可能であっても、ブラウザ サンドボックスのセキュリティにより禁止されます。

Windows Script Host (スタンドアロンの .vbs または .js ファイル) 内から - 私が認識している方法はありません。この質問によると、WMI はこれを制御することもできません。

于 2010-02-07T09:00:36.197 に答える