Voglio controllare il volume del mio sistema Windows da uno script JScript o VBScript. Qualche idea?Come controllare il volume di sistema di Windows usando JScript o VBScript?
Inoltre, è possibile riattivare il volume del sistema se è disattivato?
Voglio controllare il volume del mio sistema Windows da uno script JScript o VBScript. Qualche idea?Come controllare il volume di sistema di Windows usando JScript o VBScript?
Inoltre, è possibile riattivare il volume del sistema se è disattivato?
Per disattivare o attivare il volume di sistema, è possibile simulare la pressione del tasto Mute con il metodo WshShell.SendKeys
:
var oShell = new ActiveXObject("WScript.Shell");
oShell.SendKeys(Chr(&HAD));
Per quanto riguarda la modifica del livello del volume da uno script, c'è una soluzione che coinvolge alcuni di automazione di Windows, come avviare l'applet Volume di sistema e simulare le scorciatoie da tastiera appropriate al suo interno, ma non penso che sia affidabile. Pertanto ti consiglio di utilizzare qualche utilità esterna in grado di modificare il livello del volume e chiamarlo dal tuo script. Ad esempio, è possibile utilizzare la connessione NirCmd strumento:
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 anche possibile disattivare o attivare il volume del sistema:
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
Dall'interno di una finestra del browser/pagina Web - assolutamente nessun modo. La sicurezza sandbox del browser lo proibirebbe anche se fosse tecnicamente possibile.
Da Windows Script Host (file standalone .vbs o .js) - non sono a conoscenza di ciò. WMI non fornisce il controllo su questo, in base allo this question.
Su Windows 7 potrei fare questo controllando le sequenze di tasti che usano 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.
ho salvato in un file chiamato Mute-Sound.vbs e ha creato un collegamento sul desktop per assegnare un tasto di scelta rapida. CTRL + ALT + F12. Per qualche motivo le scorciatoie da tastiera funzionano solo se sono sul desktop, quindi non sono sicuro di quanto siano affidabili le scorciatoie da tastiera!
http://www.nilpo.com/2008/11/windows-xp/mute-sound-volume-in-wsh/ Utilizza una sequenza di tasti di un tasto Mute della tastiera multimediale. Intelligente ;-)
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys(chr(&hAD))
La risposta di Misty Manor funziona anche su Windows Vita. Questo, ho letteralmente fatto, fa lo stesso in un certo senso.
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.
Se si vuole diminuire il volume si farebbe
oShell.SendKeys("{PGDN}") 'It Will Decrease The Volume By 20
Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post, e una volta che hai [reputazione] sufficiente (http://stackoverflow.com/help/whats-reputation) essere in grado di [commentare qualsiasi post] (http://stackoverflow.com/help/privileges/comment). –
Lì, l'ho modificato. – Jonco98
Il modo migliore che posso vedere per manipolare il livello del volume di sistema su Windows senza la necessità di installare software aggiuntivo è quello di utilizzare VBScript in uno dei seguenti modi:
Toggle sordina: (già citato in una risposta precedente)
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys(chr(&hAD))
livello del volume
Aumento:
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys(chr(&hAF))
Diminuisce il livello del volume:
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys(chr(&hAE))
Questo dovrebbe funzionare per la maggior parte delle macchine moderne di Windows. L'ho provato su Windows 7 e 8.1 e funziona bene anche quando si esegue "do as" in LC, quindi è possibile incorporare questi script all'interno di un eseguibile ed eseguirli senza bisogno di salvarli come singoli file.
Grazie Ryan. Mi hai risparmiato un po 'di tempo nel creare ([una guida, che ho pubblicato su SuperUser, su come farlo usando JavaScript] (http://superuser.com/a/1130667/401839)) – TOOGAM
Ho usato nircmd.exe insieme a vbscript per controllare il volume del sistema.
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]
Funziona perfettamente, anche per Windows 7 (32 bit)! Ho una correzione, tuttavia, in quanto "mutesysvolume 0" è silenziato e "mutesysvolume 1" è muto. –
Oh, giusto. Risolto il problema. – Helen
nircmd è fantastico, anche in grado di controllare il volume dell'app e i singoli controlli del mixer – akostadinov