الملاحظات





إعلان مواضيع الأعضاء بالمنتدى
عدد مرات النقر : 361
عدد  مرات الظهور : 1,222,840۞ أُكتُب الآية التي تَليهاآ ۞
عدد مرات النقر : 303
عدد  مرات الظهور : 1,167,508⧗ التصويت للرسآم العَبقري ⧗
ينتهي : 22-07-2018
عدد مرات النقر : 171
عدد  مرات الظهور : 79,107♥ Kazehaya VS ?i | رسماتي ♥
ينتهي : 18-07-2018
عدد مرات النقر : 20
عدد  مرات الظهور : 20,800

• مسابقة شارات سبيستونية • ❞هل ذاكرتك مستعدة ؟❝
ينتهي : 21-07-2018
عدد مرات النقر : 107
عدد  مرات الظهور : 188,939
إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم   (#1)
Yusuke Urameshi غير متواجد حالياً
محقق العالم الروحي
الصورة الرمزية Yusuke Urameshi

mt3jb كيفية كتم الصوت تلقائياً في ويندوز 10 عند فصل سماعة الرأس - 30-06-2018, 12:52 AM

كيفية كتم الصوت تلقائياً في ويندوز 10 عند فصل سماعة الرأس


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



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

[cmdletbinding()] Param() #Adding definitions for accessing the Audio API Add-Type -TypeDefinition @' using System.Runtime.InteropServices; [Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown )] interface IAudioEndpointVolume { // f(), g(), ... are unused COM method slots. Define these if you care int f(); int g(); int h(); int i(); int SetMasterVolumeLevelScalar(float fLevel, System.Guid pguidEventContext); int j(); int GetMasterVolumeLevelScalar(out float pfLevel); int k(); int l(); int m(); 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 )] interface IMMDevice { int Activate(ref System.Guid id, int clsCtx, int activationParams, out IAudioEndpointVolume aev); } [Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown )] interface IMMDeviceEnumerator { int f(); // Unused int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMDevice endpoint); } [ComImport, Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")] class MMDeviceEnumeratorComObject { } public class Audio { static IAudioEndpointVolume Vol() { var enumerator = new MMDeviceEnumeratorComObject() as IMMDeviceEnumerator; IMMDevice dev = null; Marshal.ThrowExceptionForHR(enumerator.GetDefaultA udioEndpoint(/*eRender*/ 0, /*eMultimedia*/ 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof(IAudioEndpointVolume).GUID; Marshal.ThrowExceptionForHR(dev.Activate(ref epvid, /*CLSCTX_ALL*/ 23, 0, out epv)); return epv; } public static float Volume { get {float v = -1; Marshal.ThrowExceptionForHR(Vol().GetMasterVolumeL evelScalar(out v)); return v;} set {Marshal.ThrowExceptionForHR(Vol().SetMasterVolume LevelScalar(value, System.Guid.Empty));} } public static bool Mute { get { bool mute; Marshal.ThrowExceptionForHR(Vol().GetMute(out mute)); return mute; } set { Marshal.ThrowExceptionForHR(Vol().SetMute(value, System.Guid.Empty)); } } } '@ -Verbose While($true) { #Clean all events in the current session since its in a infinite loop, to make a fresh start when loop begins Get-Event | Remove-Event -ErrorAction SilentlyContinue #Registering the Event and Waiting for event to be triggered Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event |Out-Null $EventType = $Event.sourceargs.newevent | ` Sort-Object TIME_CREATED -Descending | ` Select-Object EventType -ExpandProperty EventType -First 1 #Conditional logic to handle, When to Mute/unMute the machine using Audio API If($EventType -eq 3) { [Audio]::Mute = $true Write-Verbose "Muted [$((Get-Date).tostring())]" } elseif($EventType -eq 2 -and [Audio]::Mute -eq $true) { [Audio]::Mute = $false Write-Verbose "UnMuted [$((Get-Date).tostring())]" } }
انشئ ملف نصي "txt" جديد، قم بلصق السكربت بداخله :

اذهب إلى ملف حفظ بأسم قم بتسمية الملف، اضغط على حفظ كنوع وحدد "All Files"، احفظه في مكان ما من غير المحتمل أن تحذفه فيه عن طريق الصدفة ولكن أيضًا حيث يمكنك العثور عليه بسهولة إذا كنت بحاجة إليه، بعد ذلك قم بتغير لاحقة الملف من txt الى PS1 واضغط انتر، سينتج ملف بهذا الشكل :

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

السكربت يكون على الشكل التالي :
@ECHO OFF PowerShell.exe -Command "Path to script" استبدل عبارة "Path to script" بالمسار الفعلي للبرنامج النصي PowerShell الذي قمنا بأنشائه قبل قليل، خذ بعين الاعتبار المثال التالي :
@ECHO OFF PowerShell.exe -Command "C:\Reminder-Scripts\Milk\Buy-Milk.p"
افتح المفكرة وقم بلصق البرنامج النصي فيه :

احفظ الملف بامتداد "bat"، ما تفعله هذه الملفات الدفعية هو أنها تفتح PowerShell ثم تشغل النص البرمجي الذي أشرت إليه، سينتج أيضاً ملف بهذا الشكل :

هكذا نكون قد تحصلنا في النهاية على برنامج نصي دفعي ليشغل البرنامج النصي لل PowerShell الذي قمنا بأعداده في البداية لكتم الصوت تلقائياً في ويندوز 10 عندما تكون سماعات الرأس غير موصولة.

__________________
*** Yusuke Urameshi ***


*** YuYu Hakusho ***
***
  رد مع اقتباس
إضافة رد



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع



الساعة الآن 09:01 AM
Powered by vBulletin® Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. translated by all ga2h
Ads Organizer 3.0.3 by Analytics - Distance Education

جميع الحقوق محفوظ لمنتديات أنمي الزهرة
جميع الأراء المطروحة تعبر عن وجهة نظر كاتبها ولا تعبر بأي شكل عن وجهة نظر الإدارة

Security team