विंडोज 10 पर हेडफोन अनप्लग होने पर स्वचालित रूप से म्यूट साउंड कैसे करें

click fraud protection

विंडोज 10 विभिन्न ऑडियो उपकरणों के लिए अलग ऑडियो प्रोफाइल रख सकता है। आपके द्वारा कनेक्ट किए जाने वाले प्रत्येक ऑडियो डिवाइस के लिए, आप एक भिन्न वॉल्यूम स्तर सेट कर सकते हैं और जब डिवाइस कनेक्ट होता है, तो वॉल्यूम स्वचालित रूप से समायोजित हो जाएगा। बेशक, कोई भी हर समय एक ऑडियो डिवाइस म्यूट नहीं रखता है। वे वॉल्यूम बढ़ाएंगे या घटाएंगे लेकिन कोई भी आदतन ऑडियो डिवाइस म्यूट नहीं करता है।

यदि आप अपने डेस्कटॉप के साथ हेडफ़ोन की एक जोड़ी का उपयोग करते हैं, और अक्सर उन्हें डिस्कनेक्ट करना पड़ता है, तो आप थोड़ी सी पावरस्लिप स्क्रिप्ट का उपयोग कर सकते हैं जो आपके हेडफ़ोन को अनप्लग करने पर स्वचालित रूप से ध्वनि को म्यूट कर देगा।

यह कुछ ऐसा है जो मोबाइल फोन करते हैं, यानी जब आप अपने हेडफ़ोन को अनप्लग करते हैं, तो संगीत अपने आप बंद हो जाता है। इसके पीछे तर्क यह है कि आपने या तो संगीत सुना है या आपने गलती से अपने हेडफ़ोन को हटा दिया है और आपको इसे बंद करने के लिए एक त्वरित तरीका चाहिए। स्क्रिप्ट मूल रूप से उसी सिद्धांत पर लिखी गई थी GEEKEEFY के प्रतीक सिंह.

स्वचालित रूप से म्यूट साउंड

नोटपैड खोलें और निम्नलिखित पेस्ट करें;

instagram viewer
[Cmdletbinding ()] ऑडियो एपीआई तक पहुँचने के लिए परम () # एडिंग की परिभाषा। Add-Type -TypeDefinition @ ' सिस्टम का उपयोग कर। रनटाइम। InteropServices; [गाइड ("5CDF2C82-841E-4546-9722-0CF74078229A"), इंटरफ़ेस टाइप (ComInterfaceType)। InterfaceIsIUnknown)] इंटरफ़ेस IAudioEndpointVolume { // च (), जी (),... अप्रयुक्त COM विधि स्लॉट हैं। अगर आप परवाह करते हैं तो इन्हें परिभाषित करें। int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (फ्लोट fLevel, सिस्टम। गाइड pguidEventContext); int j (); int GetMasterVolumeLevelScalar (फ्लोट pfLevel के बाहर); int k (); int l (); int m (); int n (); int सेटम्यूट ([मार्शल एंड अनमैन्डेड टाइप) बूल)] बूल bute, सिस्टम। गाइड pguidEventContext); int GetMute (आउट बूल pbMute); } [गाइड ("D666063F-1587-4E43-81F1-B948E807363F"), इंटरफ़ेस टाइप (ComInterfaceType)। InterfaceIsIUnknown)] इंटरफ़ेस IMMDevice { int सक्रिय करें (रेफरी सिस्टम। गाइड आईडी, इंट clsCtx, इंट एक्टिवेशनपराम, आउट IAudioEndpointVolume aev); } [गाइड ("A95664D2-9614-4F35-A746-DE8DB63617E6"), इंटरफ़ेस टाइप (ComInterfaceType)। InterfaceIsIUnknown)] इंटरफ़ेस IMMDeviceEnumerator { int f (); // अप्रयुक्त। int GetDefaultAudioEndpoint (int dataFlow, int भूमिका, IMMDevice समापन बिंदु); } [कॉमआईपोर्ट, गाइड ("बीसीडीई 0395-ई 52 एफ -467 सी -8 ई 3 डी-सी 4579291692 ई")] वर्ग MMDeviceEnumeratorComObject {} पब्लिक क्लास ऑडियो { स्थिर IAudioEndpointVolume वॉल्यूम () { var enumerator = new MMDeviceEnumeratorComObject () IMMDeviceEnumerator के रूप में; IMMDevice dev = null; मार्शल। ThrowExceptionForHR (प्रगणक। GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, आउट देव); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; मार्शल। ThrowExceptionForHR (देव। सक्रिय करें (epvid, / * CLSCTX_ALL * / 23, 0, out epv)) सक्रिय करें; वापसी अवधि; } सार्वजनिक स्थैतिक फ्लोट वॉल्यूम { get {फ्लोट v = -1; मार्शल। ThrowExceptionForHR (वॉल्यूम) (। GetMasterVolumeLevelScalar (वी के बाहर)); वापसी v;} सेट {मार्शल। ThrowExceptionForHR (वॉल्यूम) (। SetMasterVolumeLevelScalar (मान, सिस्टम)। GUID। खाली करें));} } सार्वजनिक स्थैतिक बूल म्यूट { मिल {बूल म्यूट; मार्शल। ThrowExceptionForHR (वॉल्यूम) (GetMute (आउट म्यूट)); वापसी म्यूट; } सेट {मार्शल। ThrowExceptionForHR (Vol) (सेट करें) (मान, सिस्टम)। GUID। खाली करें)); } } } '@ -Verbose जबकि ($ सच) { # मौजूदा सत्र की सभी घटनाओं को अनंत लूप में शुरू करने के बाद, जब लूप शुरू होता है तो एक नई शुरुआत करें। गेट-इवेंट | Remove-Event -ErrorAction चुपचाप बंद करें #Registering इवेंट और प्रतीक्षा करने के लिए इवेंट के लिए ट्रिगर किया जा रहा है। रजिस्टर-WmiEvent -Class Win32_DeviceChangeEvent। प्रतीक्षा-इवेंट -OutVariable Event | आउट-नल $ EventType = $ Event.sourceargs.newevent ` सॉर्ट-ऑब्जेक्ट TIME_CREATED -Descending | ` Select-Object EventType -ExpandProperty EventType -First 1 #Conditional तर्क को संभालने के लिए, जब ऑडियो API का उपयोग करके मशीन को म्यूट / अनम्यूट करें। यदि ($ EventType -q 3) { [ऑडियो]:: म्यूट = $ सच। लिखने-क्रिया "म्यूटेड [$ ((प्राप्त-दिनांक) .tostring ())]" } अन्य ($ EventType -eq 2 -और [ऑडियो]:: म्यूट -एक $ सत्य) { [ऑडियो]:: म्यूट = $ गलत। लिखने-क्रिया "अनमैटेड [$ ((प्राप्त-तिथि) .tostring ())]" } }

इसे PS1 फ़ाइल एक्सटेंशन के साथ सहेजें। सुनिश्चित करें कि आपने फ़ाइल प्रकार ड्रॉपडाउन से Files ऑल फाइल्स ’का चयन किया है। फ़ाइल को एक नाम दें जो आपको एक नज़र में बताएगा कि यह क्या करता है। इसे किसी स्थान पर सहेजें जिसे आप इसे दुर्घटना से हटाने की संभावना नहीं रखते हैं, लेकिन जहाँ आपको आवश्यकता हो, वहाँ भी इसे आसानी से पा सकते हैं।

स्क्रिप्ट चल रहा है

PowerShell केवल एक स्क्रिप्ट को ऑटोरन नहीं कर सकता है। एक अंतर्निहित सुरक्षा उपाय है जो इसे ऐसा करने से रोकता है लेकिन इसके चारों ओर एक रास्ता है। हमारे पास एक विस्तृत लेख है कि आप ऐसा कैसे कर सकते हैं। करने के लिए निर्देशों का पालन करें PowerShell स्क्रिप्ट को ऑटो-चलाएं आपने अभी-अभी बनाया, और अपने पीसी को बूट करने के लिए स्क्रिप्ट को शुरू करने के लिए एक निर्धारित कार्य का उपयोग करें।

वैकल्पिक रूप से, आप अपने सिस्टम को बूट करते समय स्क्रिप्ट को मैन्युअल रूप से चला सकते हैं। मैं 30 मिनट से कम समय से इसका उपयोग कर रहा हूं और मुझे नहीं पता कि मैं इसके बिना कैसे जी रहा था।

watch instagram story
खोज
हाल के पोस्ट