كيفية كتم الصوت تلقائيًا عند فصل سماعات الرأس على نظام التشغيل Windows 10

يمكن أن يحتفظ Windows 10 بملفات تعريف صوتية منفصلة لأجهزة الصوت المختلفة. لكل جهاز صوت تقوم بتوصيله ، يمكنك تعيين مستوى صوت مختلف وعندما يتم توصيل الجهاز ، سيتم ضبط مستوى الصوت تلقائيًا. بالطبع ، لا أحد يحتفظ بجهاز صوتي مكتوم الصوت طوال الوقت. سيزيدون مستوى الصوت أو ينقصونه ولكن لا يقوم أحد بكتم صوت أي جهاز صوتي بشكل معتاد.

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

هذا شيء تفعله الهواتف المحمولة ، على سبيل المثال ، عندما تقوم بفصل سماعات الرأس ، تتوقف الموسيقى تلقائيًا. المنطق وراء ذلك هو أنك إما أنهيت الاستماع إلى الموسيقى أو أنك قمت بإزالة سماعات الرأس بطريق الخطأ وتحتاج إلى طريقة سريعة لإيقاف تشغيلها. تمت كتابة السيناريو بشكل أساسي على نفس المبدأ بواسطة  Prateek Singh من GEEKEEFY .

كيفية كتم الصوت تلقائيًا عند فصل سماعات الرأس على نظام التشغيل Windows 10

تلقائيا كتم الصوت

افتح المفكرة والصق ما يلي ؛

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

احفظه بملحق ملف PS1. تأكد من تحديد "كل الملفات" من القائمة المنسدلة لنوع الملف. امنح الملف اسمًا يخبرك في لمح البصر بما يفعله. احفظه في مكان ما من غير المحتمل أن تحذفه عن طريق الصدفة ولكن أيضًا حيث يمكنك العثور عليه بسهولة إذا احتجت إلى ذلك.

تشغيل البرنامج النصي

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

بدلاً من ذلك ، يمكنك تشغيل البرنامج النصي يدويًا عند تشغيل نظامك. لقد كنت أستخدمه منذ أقل من 30 دقيقة ولا أعرف كيف كنت أعيش بدونه من قبل.

اترك تعليقاً

قم بتفعيل وضع توفير الطاقة التكيفي لتحسين عمر البطارية على نظام التشغيل Windows 11

قم بتفعيل وضع توفير الطاقة التكيفي لتحسين عمر البطارية على نظام التشغيل Windows 11

لتمكين ميزة توفير الطاقة التكيفية في نظام التشغيل Windows 11، استخدم ViveTool لتشغيل معرف الميزة 56401475 وحدد "تكيفي" في صفحة الطاقة والبطارية.

يُقدّم الإصدار 27898 لنظام التشغيل Windows 11 ميزات جديدة لقناة Canary

يُقدّم الإصدار 27898 لنظام التشغيل Windows 11 ميزات جديدة لقناة Canary

يوفر الإصدار 27898 لنظام التشغيل Windows 11 خيارات تخصيص جديدة، وإعادة تصميم أذونات التطبيقات، وأداة استرداد، وميزات صوتية، وتغييرات في DMA.

الإصدار 26120.4441 (KB5060816) لنظام التشغيل Windows 11: الميزات والتغييرات الجديدة (إصدار تجريبي)

الإصدار 26120.4441 (KB5060816) لنظام التشغيل Windows 11: الميزات والتغييرات الجديدة (إصدار تجريبي)

يأتي إصدار Windows 11 رقم 26120.4441 (KB5060816) في مرحلة تجريبية مع ميزة تصدير الاستدعاء في أوروبا، وساعة مركز الإشعارات مع الثواني، وتغييرات أخرى.

كيفية إنشاء قرص USB قابل للإقلاع لنظام التشغيل Windows 11 arm64 (ARM) باستخدام برنامج Rufus

كيفية إنشاء قرص USB قابل للإقلاع لنظام التشغيل Windows 11 arm64 (ARM) باستخدام برنامج Rufus

أنشئ قرص USB قابلًا للإقلاع لنظام التشغيل Windows 11 ARM64 باستخدام برنامج Rufus. تعرّف على كيفية تنزيل ملف ISO الخاص بنظام ARM64 وإعداد قرص USB لأجهزة الكمبيوتر التي تعمل بمعالجات ARM، بما في ذلك أجهزة الكمبيوتر التي تعمل بنظام Copilot+.

كيفية تثبيت برنامج winget على نظامي التشغيل ويندوز 11 و10

كيفية تثبيت برنامج winget على نظامي التشغيل ويندوز 11 و10

لتثبيت winget (مدير حزم ويندوز)، قم بتنزيل برنامج تثبيت التطبيقات على نظامي التشغيل ويندوز 11 و10 واستخدم أمر winget.

كيفية تجاوز حساب مايكروسوفت في مرحلة الإعداد الأولي (OOBE) على نظام التشغيل ويندوز 11 - طرق لا تزال فعالة

كيفية تجاوز حساب مايكروسوفت في مرحلة الإعداد الأولي (OOBE) على نظام التشغيل ويندوز 11 - طرق لا تزال فعالة

لا يزال بإمكانك تجاوز حساب Microsoft والإنترنت على نظام التشغيل Windows 11 OOBE باستخدام التسجيل، وWinJS، والانضمام إلى المجال، والملف غير المراقب، والأدوات.

دورة حياة نظام التشغيل Windows 11 للإصدارين المنزلي والاحترافي

دورة حياة نظام التشغيل Windows 11 للإصدارين المنزلي والاحترافي

ينتهي دعم إصداري Windows 11 Home و Pro للإصدار 25H2 في 13/10/2027، وينتهي دعم الإصدار 24H2 في 13/10/2026. أما إصداري Enterprise و Education فيتمتعان بدعم أطول.

كيفية تثبيت نظام التشغيل Windows 11 من ملف ISO بدون استخدام USB

كيفية تثبيت نظام التشغيل Windows 11 من ملف ISO بدون استخدام USB

لتثبيت نظام التشغيل Windows 11 بشكل نظيف من ملف ISO، يجب عليك تحميل الصورة وتشغيل برنامج التثبيت مع خيار "لا شيء" لمسح محرك الأقراص.

كيفية تفعيل ميزة خلفية الفيديو الجديدة على نظام التشغيل Windows 11 الإصدارين 25H2 و24H2

كيفية تفعيل ميزة خلفية الفيديو الجديدة على نظام التشغيل Windows 11 الإصدارين 25H2 و24H2

لتمكين ميزة خلفية الفيديو على نظام التشغيل Windows 11، في أحدث إصدار تجريبي أو إصدار للمطورين، قم بتشغيل الأمر vivetool /enable /id:57645315.

كيفية تعيين خلفيات سطح المكتب المتحركة على نظام التشغيل ويندوز 11

كيفية تعيين خلفيات سطح المكتب المتحركة على نظام التشغيل ويندوز 11

لتعيين خلفيات حية على نظام التشغيل Windows 11، افتح تطبيق Lively Wallpaper، وانقر على المكتبة، ثم انقر بزر الماوس الأيمن على الخلفية الحية، واختر تعيين كخلفية.