Cara Membisukan Bunyi Secara Automatik Apabila Fon Kepala Dicabut Palam Pada Windows 10

Windows 10 boleh menyimpan profil audio yang berasingan untuk peranti audio yang berbeza. Untuk setiap peranti audio yang anda sambungkan, anda boleh menetapkan tahap kelantangan yang berbeza dan apabila peranti disambungkan, kelantangan akan melaraskan secara automatik. Sudah tentu, tiada siapa yang memastikan peranti audio diredam sepanjang masa. Mereka akan menambah atau mengurangkan kelantangan tetapi tiada siapa yang lazimnya membisukan peranti audio.

Jika anda menggunakan sepasang fon kepala dengan desktop anda, dan selalunya terpaksa memutuskan sambungannya, anda boleh menggunakan sedikit skrip PowerShell yang akan meredam bunyi secara automatik apabila anda mencabut fon kepala anda.

Ini adalah sesuatu yang dilakukan oleh telefon mudah alih iaitu, apabila anda mencabut fon kepala anda, muzik berhenti secara automatik. Logik di sebalik ini ialah anda telah selesai mendengar muzik atau anda telah mengeluarkan fon kepala anda secara tidak sengaja dan anda memerlukan cara cepat untuk mematikannya. Skrip itu pada asasnya ditulis berdasarkan prinsip yang sama oleh  Prateek Singh dari GEEKEEFY .

Cara Membisukan Bunyi Secara Automatik Apabila Fon Kepala Dicabut Palam Pada Windows 10

Redam Bunyi secara automatik

Buka Notepad dan tampal yang berikut;

[cmdletbinding()] Param() #Menambah definisi untuk mengakses Audio API Add-Type -TypeDefinition @' menggunakan System.Runtime.InteropServices; [Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] antara muka IAudioEndpointVolume { // f(), g(), ... ialah slot kaedah COM yang tidak digunakan. Tentukan ini jika anda mengambil berat 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(keluar bool pbMute); } [Guid("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] antara muka IMMDevice { int Activate(ref System.Guid id, int clsCtx, int activationParams, keluar IAudioEndpointVolume aev); } [Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] antara muka IMMDeviceEnumerator { int f(); // Unused int GetDefaultAudioEndpoint(int dataFlow, int role, out IMMMevice endpoint); } [ComImport, Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")] kelas MMDeviceEnumeratorComObject { } kelas awam Audio { statik IAudioEndpointVolume Vol() { var enumerator = MMDeviceEnumeratorEnumeratorComObject baharu; IMMDevice dev = batal; 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)); pulangan epv; } apungan statik awam Isipadu { dapatkan {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)); kembali bisu; } set { Marshal.ThrowExceptionForHR(Vol().SetMute(value, System.Guid.Empty)); } } } '@ -Verbose While($true) { #Bersihkan semua acara dalam sesi semasa sejak ia dalam gelung tak terhingga, untuk membuat permulaan baharu apabila gelung bermula Dapatkan-Acara | Remove-Event -ErrorAction Secara SenyapTeruskan #Mendaftar Acara dan Menunggu acara dicetuskan Register-WmiEvent -Class Win32_DeviceChangeEvent Wait-Event -OutVariable Event |Out-Null $EventType = $Event.sourceargs. acara baharu | ` Isih-Objek TIME_CREATED -Menurun | ` Select-Object EventType -ExpandProperty EventType -Pertama 1 #Logik bersyarat untuk dikendalikan, Bila untuk Membisukan/Nyahredam mesin menggunakan Audio API If($EventType -eq 3) { [Audio]::Mute = $true Write-Verbose "Diredamkan [$((Get-Date).tostring())]" } elseif($EventType -eq 2 -dan [Audio]::Mute -eq $true) { [Audio]::Mute = $false Write-Verbose " Nyahredam [$((Get-Date).tostring())]" } }

Simpannya dengan sambungan fail PS1. Pastikan anda memilih 'Semua Fail' daripada menu lungsur jenis fail. Beri nama fail yang akan memberitahu anda sepintas lalu apa yang dilakukannya. Simpannya di tempat yang anda tidak mungkin memadamkannya secara tidak sengaja tetapi juga di mana anda boleh menemuinya dengan mudah jika perlu.

Menjalankan Skrip

PowerShell tidak boleh autorun skrip sahaja. Terdapat langkah keselamatan terbina dalam yang menghalangnya daripada berbuat demikian tetapi ada cara untuk mengatasinya. Kami mempunyai artikel terperinci tentang cara anda boleh melakukannya. Ikut arahan untuk menjalankan skrip PowerShell secara automatik yang baru anda buat dan gunakan tugas yang dijadualkan untuk memulakan skrip setiap kali anda but PC anda.

Sebagai alternatif, anda boleh menjalankan skrip secara manual apabila anda boot sistem anda. Saya telah menggunakannya kurang daripada 30 minit dan saya tidak tahu bagaimana saya hidup tanpanya sebelum ini.

Tinggalkan Komen

Cara mencipta USB bootable Windows 11 arm64 (ARM) menggunakan Rufus

Cara mencipta USB bootable Windows 11 arm64 (ARM) menggunakan Rufus

Cipta USB bootable Windows 11 ARM64 dengan Rufus. Ketahui cara memuat turun ISO ARM64 dan menyediakan USB untuk PC ARM, termasuk PC Copilot+.

Cara memasang winget pada Windows 11, 10

Cara memasang winget pada Windows 11, 10

Untuk memasang winget (Pengurus Pakej Windows), muat turun Pemasang Apl pada Windows 11 dan 10 dan gunakan arahan winget.

Cara memintas Akaun Microsoft dalam OOBE pada Windows 11 – kaedah yang masih berfungsi

Cara memintas Akaun Microsoft dalam OOBE pada Windows 11 – kaedah yang masih berfungsi

Anda masih boleh memintas Akaun Microsoft dan internet pada Windows 11 OOBE dengan Registry, WinJS, Domain Joined, Unattended file dan alatan.

Kitaran hayat Windows 11 untuk Rumah dan Pro

Kitaran hayat Windows 11 untuk Rumah dan Pro

Kitaran hayat Windows 11 Home dan Pro untuk versi 25H2 berakhir pada 13/10/27, dan kitaran hayat 24H2 berakhir pada 13/10/26. Enterprise dan Education mempunyai sokongan yang lebih lama.

Cara memasang Windows 11 secara bersih daripada ISO tanpa USB

Cara memasang Windows 11 secara bersih daripada ISO tanpa USB

Untuk memasang Windows 11 secara bersih daripada fail ISO, anda perlu memasang imej dan melancarkan persediaan dengan pilihan Tiada apa-apa untuk memadam pemacu.

Cara mendayakan ciri kertas dinding video baharu pada Windows 11 25H2 dan 24H2

Cara mendayakan ciri kertas dinding video baharu pada Windows 11 25H2 dan 24H2

Untuk mendayakan ciri kertas dinding video pada Windows 11, dalam binaan Dev atau Beta terkini, jalankan arahan vivetool /enable /id:57645315.

Cara menetapkan kertas dinding desktop langsung pada Windows 11

Cara menetapkan kertas dinding desktop langsung pada Windows 11

Untuk menetapkan kertas dinding langsung pada Windows 11, buka Lively Wallpaper, klik pada Library, klik kanan kertas dinding langsung, pilih Set as Wallpaper.

Binaan 26220.5790 (KB5065779) untuk Windows 11 25H2 menambah arahan on-hover untuk File Explorer dan banyak lagi (Dev)

Binaan 26220.5790 (KB5065779) untuk Windows 11 25H2 menambah arahan on-hover untuk File Explorer dan banyak lagi (Dev)

KB5065779 (binaan 26220.5790) untuk Windows 11 25H2 dan binaan 26120.5790 untuk 24H2 dengan imlak bendalir baharu, arahan semasa melayang dan lebih banyak ciri.

Cara menyambungkan Copilot ke Gmail, OneDrive dan perkhidmatan lain pada Windows 11

Cara menyambungkan Copilot ke Gmail, OneDrive dan perkhidmatan lain pada Windows 11

Penyambung Copilot pada Windows 11 membolehkan AI mencari fail dan e-mel pada OneDrive, Outlook, Google Drive, Gmail, Kalendar Google, Kenalan.

Cara menukar MBR ke GPT tanpa kehilangan data pada Windows 10

Cara menukar MBR ke GPT tanpa kehilangan data pada Windows 10

Untuk menukar daripada MBR kepada GPT untuk Windows 11, buka WinRE, lancarkan Command Prompt, jalankan arahan mbr2gpt /validate dan mbr2gpt /convert.