मैं विंडोज 7 पर कमांड लाइन से वॉल्यूम के स्तर तक कैसे पहुंच सकता हूं?


17

क्या चाहिए मुझे

मैं एक टूल या स्क्रिप्ट की तलाश कर रहा हूं जो मुझे कमांड लाइन से विंडोज वॉल्यूम के स्तर तक पहुंचने की अनुमति देता है। आदर्श रूप से यह मुझे आवेदन स्तरों सहित सभी संस्करणों को प्राप्त करने और सेट करने की अनुमति देगा, लेकिन मैं केवल प्राप्त करने के लिए व्यवस्थित करूंगा, और केवल मास्टर स्तर। मुझे कोई आपत्ति नहीं है, तो इसे इस्तेमाल करता है PowerShell, WMI, JavaScript, .Net, वूडू, या तितलियों। कोई भी समाधान जो मुझे सिर्फ एक संख्या देगा जिसे मैं आगे 0% से 100% तक की सीमा में फिट करने के लिए प्रक्रिया कर सकता हूं।

एक और तरीका रखो, प्रॉम्प्ट पार्ट्स ब्लैक बॉक्स है जिसे मुझे भरा जाना चाहिए:

C:\> getvol master
50

या और भी

C:\> wmic <alias> where "device='master' and name='volume'" get name,value
Name    Value
Volume  0xDEADBEEF

मुझे कोई आपत्ति नहीं है अगर मुझे इसे लपेटने के लिए कुछ समय बिताना है या खुद को कुछ लिखना है अगर ऐसा करने के लिए उपकरण स्वतंत्र रूप से उपलब्ध हैं। बाद के मामले में, मुझे कोर के लिए कुछ पॉइंटर्स / प्रूफ-ऑफ-कॉन्सेप्ट की आवश्यकता होगी, लेकिन मैं अपने दम पर क्रॉफ्ट का प्रबंधन कर सकता हूं। इसके अलावा, मैं सिर्फ इस उद्देश्य के लिए नए विकास ढांचे को स्थापित करने से बचना चाहूंगा (ध्यान दें कि इन आवश्यकताओं को पेश करने से पहले संगीत 2 वर्ष और iglvzx के उत्तर दोनों दिए गए थे )।

"प्लेटफ़ॉर्म" के रूप में, मेरे पास उपलब्ध है:

  • कुछ भी जो विंडोज 7 होम प्रीमियम के साथ आता है
  • कुछ भी जो सिग्विन के साथ आता है
  • पर्ल
  • अजगर
  • माणिक

आमतौर पर, ओपन-सोर्स समाधान बहुत पसंद किए जाते हैं। बंद-स्रोत उपकरण तब तक ठीक होते हैं जब तक वे फ्रीवेयर होते हैं और स्रोत पर भरोसा किया जा सकता है। वाणिज्यिक समाधान नो-गो हैं।

मुझे क्या जरूरत नहीं है

  • कुछ ऐसे ही सवाल हैं जो ज्यादातर वॉल्यूम सेट करने से संबंधित हैं। सबसे अधिक, मुझे वॉल्यूम प्राप्त करने की आवश्यकता है , सेट नहीं।
  • वहाँ है nircmdc, जो मात्रा निर्धारित करने का समर्थन करता है, लेकिन नहीं मिल रहा है।
  • मेरी रजिस्ट्री में एक कुंजी [1] है जिसमें ऐसे मान हैं जो जीयूआई मिक्सर के माध्यम से वॉल्यूम समायोजित करने पर अनुमानित रूप से बदलते हैं, लेकिन मुझे लगता है कि उस कुंजी से पढ़ना हार्डवेयर परिवर्तन या सिस्टम अपग्रेड पर टूटने का खतरा है। जब तक मैं भविष्य में होने वाले प्रमाण के समाधान पर भरोसा नहीं कर सकता, मैं इसका उपयोग नहीं कर सकता।
  • वेब पर वॉल्यूम सेट करने के लिए समाधान AutoHotKeyऔर WSHसमाधान हैं , लेकिन ए) वे भी सेटिंग के लिए केवल अच्छे हैं और, बदतर, बी) वे SendKeysजीयूआई को नियंत्रित करने के लिए माउस आंदोलन का उपयोग या स्वचालित करते हैं। GUI को स्वचालित करना एक विकल्प नहीं है।

##windowsFreenode पर चैनल के रूप में कभी बेकार है, हैक्स और आधे पके हुए समाधान के साथ गूगल overflows, और मैं एक Wiccan जादू से एक WinAPI कॉल नहीं बता सकता।

किसी को भी एक तरह से पता है?


  1. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode000

डब्ल्यूएमआई जैसे सेमी एक विकल्प नहीं है :(
डेर होकस्टापलर

संभवतः प्रासंगिक: superuser.com/questions/284527/…
Der Hochstapler

क्या आपको अपने उत्तर का विस्तार करने के लिए मेरी आवश्यकता है? मुझे यकीन नहीं था कि आपको और अधिक की आवश्यकता है, क्योंकि आप प्रोग्रामिंग के साथ अनुभव करते हैं। मैं एक उदाहरण प्रदान कर सकता हूं कि आप अपने लक्ष्य को आसानी से प्राप्त करने के लिए ऑटोटेक का उपयोग कैसे कर सकते हैं।
iglvzx

मुझे लगता है कि यह एक बहुत अच्छा सुझाव है, फिर से धन्यवाद, लेकिन एएचके मुझे एक बार और मैं कभी भी शर्मिंदा हूं। मैं शायद इसका इस्तेमाल नहीं करता, भले ही यह पूरी तरह से विकसित समाधान था। भविष्य के पाठकों / अधिक upvotes के लिए इस पर विस्तार करने से आपको कुछ नहीं होता। :)
पेथ

1
(एक नोट के रूप में जो reg। मेरे बॉक्स पर भी मौजूद नहीं है, ऐसा लगता है ... यह वास्तव में अस्थिर हो सकता है)। मेरे c ++ उत्तर को यहां भी देखें: stackoverflow.com/a/21056089/32453
rogerdpack 23

जवाबों:


5

StackOverflow: /programming/4640106/how-to-get-current-volume-of-system-sound-device-in-windows7

जवाब: /programming//a/4640225/704977

आप EndpointVolume API की तलाश में हैं। यह नए ऑडियो एपीआई का हिस्सा है जो विंडोज विस्टा में जारी किया गया था, और इसका उपयोग मास्टर वॉल्यूम प्राप्त करने या सेट करने के लिए किया जा सकता है।
... कोडप्रोजेक्ट पर एक पूर्ण प्रबंधित रैपर लाइब्रेरी उपलब्ध है: विस्टा कोर ऑडियो एपीआई मास्टर वॉल्यूम कंट्रोल।


सूचक के लिए धन्यवाद! क्या मुझे इसे स्वयं कोड करना होगा या क्या आप शायद एक छोटे उपकरण के बारे में जानते हैं जो प्रश्न / उत्तर से उछला है? मैंने C # को पहले नहीं छुआ है: अगर मुझे इसे स्वयं कोड करना है, तो क्या कोई संकलक स्वतंत्र रूप से उपलब्ध है?
पैथ

सबसे कम आपको विज़ुअल स्टूडियो C # एक्सप्रेस को डाउनलोड करने की आवश्यकता होगी, जो मुफ़्त है: microsoft.com/visualstudio/en-us/products/2010-editions/…
music2myear

आपके प्रश्न का हल खोजते समय मुझे केवल यही विशेष उत्तर मिला। मैंने यह देखने के लिए आगे अनुसंधान का पीछा नहीं किया है कि क्या कोई संकलित बाइनरी पहले से ही सार्वजनिक रूप से उपलब्ध है।
म्यूजिक

इस Google खोज में कुछ वादा किया गया प्रतीत होता है: google.com/search?q=get+current+volume+by+command+line+windows
music2myear

2
वह C # उन्मुख प्रतीत होता है। यदि आप C ++ 'ish विकल्प की तलाश कर रहे हैं, तो stackoverflow.com/a/21056089/32453
23

4

मुझे पता है कि आपने कहा था कि आप एक ऑटोहॉट्की समाधान नहीं चाहते हैं, लेकिन मेरा मानना ​​है कि ऑटोहॉट्की एपीआई के पास वह है जो आप देख रहे हैं:

आपको GUI बनाने या AutoHotkey के साथ हॉटकी का उपयोग करने की आवश्यकता नहीं है। आप एक संकलन करके शक्तिशाली कमांड लाइन उपयोगिताओं को लिख सकते हैं.ahk स्क्रिप्ट । कहा जा रहा है, आप काम करने के लिए FileAppend कमांड को देखना चाहेंगेstdout


यहाँ एक है कि यह करता है: gist.github.com/rdp/8363141 (हालांकि इसके लिए एक सीधा कंसोल ऐप सरल / आसान हो सकता है, अन्य टिप्पणियां यहां देखें)
rogerdpack

0

मास्टर वॉल्यूम को रजिस्ट्री स्थान में संग्रहीत किया जाता है:

...\#eSpeakerTopo\Properties\{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}

उदाहरण के लिए, यह आरईजी फ़ाइल 100% तक मास्टर वॉल्यूम सेट करती है।

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceClasses\{6994ad04-93ef-11d0-a3cc-00a0c9223196}\##?#HDAUDIO#FUNC_01&VEN_8384&DEV_7680&SUBSYS_83847680&REV_1034#4&31e60982&0&0001#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\#eSpeakerTopo\Properties\{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}\20000]
@=hex(ffff1003):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
  00,00,00

कुंजी नाम अलग हो सकता है। प्रभावी होने के लिए आपको पुनः आरंभ करने की आवश्यकता है।

आप संपादित करने या खोलने Propertiesया {7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc}कुंजी को खोलने में सक्षम नहीं हो सकते हैं regedit। हालाँकि आपके पास आवश्यक पहुँच अनुमतियाँ हैं, आपको इस तरह एक त्रुटि प्राप्त हो सकती है:

[Window Title]
Error Opening Key

[Content]
{7fb7b48f-531d-44a2-bcb3-5ad5a134b3dc} cannot be opened.
An error is preventing this key from being opened.

[OK]

ऐसा इसलिए है क्योंकि कुंजी का नाम बहुत लंबा है। आपको अस्थायी रूप से लंबे नाम को एक वर्ण में बदलना होगा और फिर इसे वापस नाम देना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.