الإعلانات

ألن يكون رائعًا إذا تمكنت تلقائيًا من كتم صوت الصوت لجهاز الكمبيوتر الخاص بك كلما قمت بفصل سماعات الرأس؟ سيمنع استيقاظ زملائك عن طريق الخطأ في ساعات الصباح الصغيرة ، أو يكشف عن حبك لبريتني سبيرز بشكل علني.

بالطبع ، يمكنك كتم مكبرات الصوت وسماعات الرأس على أساس كل حالة على حدة باستخدام خالط مستوى الصوت. (تعرف على المزيد حول تخصيص الصوت في Windows 10.) ولكن بصراحة ، ليست هناك حاجة للقيام بذلك عندما يمكنك أتمتة ذلك باستخدام PowerShell.

إليك كيفية كتم صوت جهاز الكمبيوتر تلقائيًا عند إزالة سماعات الرأس ، مثلما تفعل الهواتف الذكية.

للبدء ، افتح المفكرة. بعد ذلك ، الصق الكود التالي في المستند الفارغ:

[cmdletbinding ()] Param () #Adding تعريفات للوصول إلى Audio API. الوظيفة الإضافية -TypeDefinition @ ' باستخدام النظام. مدة العرض. InteropServices ؛ [إرشادات ("5CDF2C82-841E-4546-9722-0CF74078229A") ، InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] واجهة IAudioEndpointVolume { // f ()، g ()،... هي فتحات أسلوب COM غير مستخدمة. حدد هذه إذا كنت تهتم. int f () ؛ int g () ؛ int h () ؛ int i () ؛ int SetMasterVolumeLevelScalar (مستوى عائم ، نظام. دليل pguidEventContext) ؛ int j () ؛ int GetMasterVolumeLevelScalar (خارج تعويم pfLevel) ؛ int k () ؛ int l () ؛ int م () ؛ int n () ؛ int SetMute ([MarshalAs (UnmanagedType. Bool)] bool bMute ، النظام. دليل pguidEventContext) ؛ int GetMute (خارج bbMute) ؛ } [إرشادات ("D666063F-1587-4E43-81F1-B948E807363F") ، InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] واجهة IMM جهاز { int تنشيط (المرجع النظام. معرف الإرشاد ، clsCtx int ، int التنشيط Param ، خارج IAudioEndpointVolume aev) ؛ } [الدليل ("A95664D2-9614-4F35-A746-DE8DB63617E6") ، InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] واجهة IMMDeviceEnumerator { int f () ؛ // غير مستعمل. int GetDefaultAudioEndpoint (int dataFlow ، int role ، out IMMDevice endpoint) ؛ } [ComImport، Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] فئة MMDeviceEnumeratorComObject {} صوت الطبقة العامة { المجلد IAudioEndpointVolume الثابت () { var enumerator = new MMDeviceEnumeratorComObject () مثل IMMDeviceEnumerator ؛ IMMDevice dev = فارغ ؛ مارشال. ThrowExceptionForHR (العداد. GetDefaultAudioEndpoint (/ * eRender * / 0، / * eMultimedia * / 1، out dev))؛ IAudioEndpointVolume epv = فارغ ؛ var epvid = typeof (IAudioEndpointVolume) .GUID ؛ مارشال. ThrowExceptionForHR (dev. تنشيط (المرجع epvid ، / * CLSCTX_ALL * / 23 ، 0 ، خارج epv)) ؛ عودة epv } حجم تعويم ثابت عام { احصل على {float v = -1 ؛ مارشال. ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (out v)) ؛ العودة v ؛} تعيين {المارشال. ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (قيمة ، نظام. الإرشاد. فارغة))؛} } كتم الصوت العام الثابت { الحصول على {كتم الصوت. مارشال. ThrowExceptionForHR (Vol (). GetMute (out mute)) ؛ عودة كتم الصوت } تعيين {المارشال. ThrowExceptionForHR (Vol (). SetMute (value، System. الإرشاد. فارغة))؛ } } } '@ -Verbose While ($ true) { نظف جميع الأحداث في الجلسة الحالية منذ أن كانت في حلقة لا نهائية ، لتبدأ بداية جديدة عندما تبدأ الحلقة. Get-Event | Remove-Event -ErrorAction SilentlyContinue # تسجيل الحدث والانتظار حتى يتم تشغيل الحدث. قم بتسجيل WmiEvent -Class Win32_DeviceChangeEvent. Wait-Event -OutVariable Event | Out-Null $ EventType = $ Event.sourceargs.newevent | ` كائن الفرز TIME_CREATED - تنازلي | ` Select-Object EventType -ExpandProperty EventType -First 1 # المنطق الشرطي للتعامل معه ، متى يتم كتم / إلغاء كتم صوت الجهاز باستخدام Audio API. If ($ EventType -eq 3) { [صوتي]: Mute = $ true. الكتابة المطوّلة "تم تجاهل [$ ((Get-Date) .tostring ())]" } elseif ($ EventType -eq 2 -and [Audio]:: Mute -eq $ true) { [صوتي]:: كتم = $ false. كتابة مطوّل "غير مكتوم [$ ((Get-Date) .tostring ())]" } }
instagram viewer

تحتاج الآن إلى حفظ الملف بتنسيق PS1. عندما تبحث في مربع حوار حفظ الملف ، حدد كل الملفات من القائمة المنسدلة واستدعاء الملف AutoMute.ps1. اسم الملف نفسه ليس مهمًا ، لذا اختر شيئًا يسهل تذكره.

لتنشيط البرنامج النصي ، انقر بزر الماوس الأيمن على الملف الذي تم إنشاؤه حديثًا وحدد يركض. سيكون البرنامج النصي نشطًا حتى تقوم بإيقاف تشغيل جهازك.

هذه مجرد واحدة من عدة طرق يمكن لـ PowerShell تعزيز إنتاجيتك عزز إنتاجيتك باستخدام Windows PowerShell Scriptsماذا لو كان بإمكانك نقل إنتاجية Linux إلى Windows؟ تأتي معظم توزيعات Linux معبأة بقشرة Bash القوية. يعد PowerShell محطة قوية بنفس القدر لنظام Windows. اقرأ أكثر . هناك الكثير من أسطر PowerShell cmdlets التي ستحسن تجربتك في Windows Powershell Cmdlets التي ستحسن مهاراتك في إدارة WindowsPowershell هي أداة سطر أوامر متساوية ولغة برمجة نصية. يمنحك القدرة على أتمتة جهاز الكمبيوتر الخاص بك عبر نفس الأوامر التي تستخدمها لإدارته. اقرأ أكثر .

حقوق الصورة: peus / Depositphotos

دان مغترب بريطاني يعيش في المكسيك. وهو مدير تحرير موقع شقيقة MUO ، كتل فك الشفرة. في أوقات مختلفة ، عمل كمحرر اجتماعي ومحرر إبداعي ومحرر مالي لـ MUO. يمكنك أن تجده يتجول في قاعة العرض في CES في لاس فيغاس كل عام (أيها الناس ، تواصلوا!) ، وهو يقوم بالكثير من المواقع خلف الكواليس...