تبلیغات

تبلیغات

چگونه می توان صوتی را هنگام جدا شدن هدفون در ویندوز غیرفعال کرد

Turn_Off_Audio_Automate_TechTip

آماده اید؟ بنظر جالب می رسد زمانی که در حال گوش کردن به موسیقی یا مشاهده فیلم با هدفون هستید و آن را جدا می کنید در همان زمان صدا هم قطع شود. ممکن است گاهی اوقات به اشتباه صدایی که از سیستم بلند شود باعث ایجاد نگرانی دیگران شود.

 

البته شما می توانید بصورت دستی این کار را توسط بخش مورد نظر صدا را ابتدا قطع کنید. ولی وقتی با یک فایل کد می توانید آن را بصورت اتوماتیک به دست سیستم بسپارید چطور؟! دیگر نیازی نیست بصورت دستی صدایی را قطع کنید.

 

با ما همراه باشید تا با چگونگی قطع صدا در زمان جدا کردن هدفون آشنا شوید ، دقیقا مانند گوشی های هوشمند!

 

آموزش قطع صوت در زمان جدا کردن هدفون از سیستم

 

برای شروع ، وارد برنامه ی نوت پد (NotePad) شوید. سپس ، کد زیر را داخل فایل نوت پد پیست (Paste) کنید.

 

[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.GetDefaultAudioEndpoint(/*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().GetMasterVolumeLevelScalar(out v)); return v;}
set {Marshal.ThrowExceptionForHR(Vol().SetMasterVolumeLevelScalar(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())]"
}
}

 

حالا باید فایل بالا را با فرمت PS1 در سیستم خود ذخیره کنید ، زمانی که در حال ذخیره کردن فایل هستید در قسمت لیست کشویی “All Files” را زده و در آخر نام فایل ps1. را وارد کنید. برای مثال نام فایل Seda.ps1 ذخیره می کنیم.

همچنین بخوانید  استفاده از گوشی اندروید به عنوان یک کلید امنیتی برای ورود به حساب گوگل خود

 

برای فعال شدن این ویژگی کافیست یکبار فایل را اجرا کنید ، برای اینکار روی فایل “راست کلیک” کرده و Run را بزنید. اسکریپت بالا تا زمانی که سیستم را خاموش نکنید فعال خواهد بود.

تبلیغات

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *