2010-02-07 13 views
8

मैं अपने विंडोज सिस्टम की मात्रा को जेस्क्रिप्ट या वीबीस्क्रिप्ट स्क्रिप्ट से नियंत्रित करना चाहता हूं। कोई विचार?जेस्क्रिप्ट या वीबीस्क्रिप्ट का उपयोग कर विंडोज सिस्टम वॉल्यूम को कैसे नियंत्रित करें?

इसके अलावा, क्या मैं म्यूट होने पर सिस्टम वॉल्यूम को अनम्यूट कर सकता हूं?

उत्तर

10

म्यूट या प्रणाली मात्रा अनम्यूट करने के लिए, आप WshShell.SendKeys पद्धति का उपयोग करके म्यूट कुंजी दबाएँ अनुकरण कर सकते हैं:

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

एक स्क्रिप्ट से ध्वनि के स्तर को बदलने के लिए, वहाँ एक समाधान है कि कुछ विंडोज स्वचालन शामिल है, जैसे कि सिस्टम वॉल्यूम एप्लेट लॉन्च करना और इसमें उचित कीबोर्ड शॉर्टकट अनुकरण करना, लेकिन मुझे नहीं लगता कि यह विश्वसनीय है। इसलिए मैं अनुशंसा करता हूं कि आप वॉल्यूम स्तर को बदलने में सक्षम कुछ बाहरी उपयोगिता का उपयोग करें और इसे अपनी स्क्रिप्ट से कॉल करें। उदाहरण के लिए, तुम मुक्त 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 
+2

यह विंडोज 7 (32-बिट) के लिए भी पूरी तरह से काम करता है! मेरे पास एक सुधार है, हालांकि, उसमें "mutesysvolume 0" अनम्यूट है और "mutesysvolume 1" म्यूट है। –

+0

ओह, ठीक है। निश्चित है कि। – Helen

+1

nircmd भयानक है, यहां तक ​​कि – akostadinov

0

ब्राउज़र विंडो/वेब पेज के भीतर से - निश्चित रूप से कोई रास्ता नहीं। ब्राउज़र सैंडबॉक्स सुरक्षा इसे प्रतिबंधित करेगी भले ही यह तकनीकी रूप से संभव हो।

विंडोज स्क्रिप्ट होस्ट (स्टैंडअलोन .vbs या .js फ़ाइल) के भीतर से - कोई भी तरीका जिसे मैं जानता हूं। this question के अनुसार, डब्ल्यूएमआई इस पर नियंत्रण प्रदान नहीं करता है।

2

विंडोज 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. 

मैं म्यूट-Sound.vbs नामक एक फाइल करने के लिए इसे बचाया और कोई शॉर्टकट कुंजी असाइन करने के लिए डेस्कटॉप पर शॉर्टकट बनाया। CTRL + ALT + एफ 12। किसी कारण से कीबोर्ड शॉर्टकट केवल डेस्कटॉप पर होने पर ही काम करते हैं, इसलिए मुझे यकीन नहीं है कि कीबोर्ड शॉर्टकट कितने विश्वसनीय हैं!

1

मिस्टी मनोर का उत्तर विंडोज वीटा पर भी काम करता है। यह, मैं सचमुच सिर्फ बनाया, एक अर्थ में वही करता है।

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 
+1

से नीचे @ मैक्सक्सकोल के उत्तर के अनुसार ऐप वॉल्यूम और व्यक्तिगत मिक्सर नियंत्रण –

+0

वहां, मैंने इसे संपादित किया। – Jonco98

7

सबसे अच्छा तरीका है मैं अतिरिक्त सॉफ़्टवेयर स्थापित करने की आवश्यकता के बिना विंडोज पर प्रणाली ध्वनि के स्तर को जोड़ तोड़ के लिए देख सकते हैं क्या करना होगा आप वॉल्यूम को कम करना चाहते हैं में 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 मशीनों के लिए काम करना चाहिए। मैंने विंडोज 7 और 8.1 पर इसका परीक्षण किया है और यह एलसी में "जैसा करें" के साथ चलाने पर भी ठीक काम करता है, इसलिए इन स्क्रिप्ट को निष्पादन योग्य के भीतर एम्बेड करना संभव है और उन्हें व्यक्तिगत फ़ाइलों के रूप में सहेजने की आवश्यकता के बिना चलाएं।

+0

धन्यवाद रयान। आपने मुझे बनाने में कुछ समय बचाया ([एक गाइड, जिसे मैंने सुपर यूज़र पर पोस्ट किया है, जावास्क्रिप्ट का उपयोग करके इसे कैसे करें] (http://superuser.com/a/1130667/401839)) – TOOGAM

0

मैंने सिस्टम वॉल्यूम को नियंत्रित करने के लिए vbscript के साथ nircmd.exe का उपयोग किया।

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] 
संबंधित मुद्दे

 संबंधित मुद्दे