Acasă
» WINDOWS
»
Cum să dezactivezi automat sunetul când căștile sunt deconectate în Windows 10
Cum să dezactivezi automat sunetul când căștile sunt deconectate în Windows 10
Windows 10 nu are un comutator universal care să dezactiveze sunetul atunci când căștile sunt deconectate. Un script PowerShell poate asculta evenimentele de modificare a dispozitivului și poate dezactiva punctul final implicit de redare după o eliminare. Îl puteți porni manual sau puteți seta Programatorul de activități să îl lanseze la conectare.
Scriptul dezactivează redarea; nu întrerupe o aplicație. De asemenea, urmărește modificările dispozitivelor pe PC, nu doar la căști, astfel încât alte dispozitive îl pot declanșa.
Verificați cum detectează Windows căștile
Deschideți Start > Setări > Sistem > Sunet și verificați dacă apar căști separat sub Ieșire . Windows vă permite să selectați o ieșire și să reglați volumul aici, dar nu oferă o regulă automată de dezactivare a sunetului la deconectare. Consultați ghidul de setări audio de la Microsoft pentru comenzile dispozitivului.
Pagina Sunet vă permite să alegeți o ieșire; nu creează o regulă automată de dezactivare a sunetului.
Verificați utilitarul audio al PC-ului pentru o setare a mufei pentru căști. Disponibilitatea depinde de driverul audio. Mufa fizică dintr-o mufă analogică nu este în sine un dispozitiv Plug and Play. Unele adaptoare audio raportează prezența mufei către Windows, iar altele nu, așa că acest script poate rata o deconectare de 3,5 mm. Microsoft explică această distincție în documentația sa pentru terminale audio . Căștile USB sau Bluetooth pot declanșa, de asemenea, un eveniment de dispozitiv atunci când Windows le adaugă sau le elimină, în funcție de dispozitiv și driver.
Salvați scriptul PowerShell
Deschideți scriptul original PSAutoMute al lui Prateek Singh și inspectați codul înainte de a-l rula. Acesta folosește interfețe audio Windows pentru a dezactiva sunetul punctului final implicit de redare multimedia și ascultă evenimentele WMI.
Salvați-l într-un folder permanent, cum ar fi C:\Scripts. În Notepad, alegeți Fișier > Salvare ca , denumiți fișierul MuteWhenHeadphonesDisconnect.ps1și setați Tip salvare ca la Toate fișierele (*.*) . Confirmați că File Explorer afișează .ps1extensia, nu .ps1.txt.
Salvați cu extensia .ps1 și selectați Toate fișierele pentru ca Notepad să nu adauge fișierul .txt.
Clasa de evenimente a scriptului este largă. Microsoft spune că Win32_DeviceChangeEventacoperă modificările dispozitivelor pe întregul computer: tipul de eveniment 2 înseamnă sosire, iar tipul 3 înseamnă eliminare. Acest script dezactivează sunetul la orice eliminare și activează sunetul la orice sosire dacă sunetul este dezactivat. Prin urmare, o unitate USB ar putea activa sunetul, sau eliminarea unui mouse ar putea activa sunetul; scriptul nu poate spune dacă ați dezactivat difuzoarele personal. Consultați referința clasei de evenimente Microsoft pentru aceste definiții.
Scripturile PowerShell sunt cod executabil, așa că inspectați mai întâi fișierul. Pe un PC personal unde aveți permisiunea de a-l rula, utilizați-l RemoteSigneddoar pentru acest proces PowerShell; nu va modifica politica persistentă a mașinii sau a utilizatorului. Dacă Windows blochează în continuare fișierul descărcat, verificați-l și rulați-l Unblock-File -Path "C:\Scripts\MuteWhenHeadphonesDisconnect.ps1". Microsoft explică aceste domenii de aplicare în ghidul său privind politica de execuție . Nu suprascrieți o politică de la locul de muncă sau de la școală.
Rulați și testați-l
Deschideți Windows PowerShell din Start ca utilizator obișnuit, schimbați folderul scripturilor, apoi porniți monitorul:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force
Set-Location C:\Scripts
.\MuteWhenHeadphonesDisconnect.ps1
Înlocuiți calea folderului dacă ați salvat fișierul în altă parte. Scriptul așteaptă într-o buclă, deci fereastra PowerShell rămâne ocupată. Lăsați-l deschis în timpul testării; apăsați Ctrl+C acolo pentru a-l opri.
Lansați monitorul în Windows PowerShell și mențineți fereastra acestuia deschisă.
Începeți cu volum redus. Deconectați și reconectați căștile o dată și confirmați că Windows dezactivează sunetul și apoi restabilește sunetul. Deoarece ascultătorul este la nivel de sistem, alte modificări ale dispozitivului pot cauza același răspuns. Dacă mufa analogică nu face nimic, driverul audio poate să nu raporteze acest lucru ca eliminare a dispozitivului. Dacă este afectat dispozitivul de redare greșit, verificați ce punct final este setat ca implicit în Windows; scriptul controlează acel punct final, nu fiecare ieșire specifică aplicației.
Pornește-l când te conectezi
Deschideți Programatorul de activități , selectați Creare activitate de bază și denumiți activitatea.
Alegeți „ Când mă conectez” ca declanșator. Aceasta pornește monitorul în sesiunea de utilizator, unde este disponibil dispozitivul de redare. Microsoft documentează -AtLogOndeclanșatorul corespunzător în New-ScheduledTaskTrigger .
Selectați Pornire program . Setați Program/script la powershell.exe. Sub Adăugare argumente , introduceți -NoProfile -ExecutionPolicy RemoteSigned -File "C:\Scripts\MuteWhenHeadphonesDisconnect.ps1", modificând calea către locația completă a fișierului.
Finalizați expertul, apoi deschideți proprietățile activității și păstrați-o setată să ruleze numai atunci când sunteți conectat. Testați-o la următoarea conectare înainte de a ascunde sau minimiza fereastra. Nu porniți o a doua copie în timp ce rulează cea programată.
Alegeți Pornire program pentru activitatea de conectare, apoi indicați-o către PowerShell și scriptul dvs.
Când să folosești o metodă diferită
Această soluție este cea mai bună atunci când comportamentul general de modificare a dispozitivelor este acceptabil. API-ul Core Audio de la Microsoft are o IMMNotificationClientinterfață pentru notificări de adăugare și eliminare a punctelor finale audio, dar scriptul conectat nu o implementează. De asemenea, un driver trebuie să expună o modificare a mufei fizice ca eveniment de punct final. Pentru comportamentul exclusiv pentru căști, utilizați un utilitar al producătorului de PC care acceptă în mod explicit detectarea mufelor sau un instrument care filtrează punctul final audio corect. Consultați documentația IMMNotificationClient de la Microsoft .
Pentru a anula pornirea automată, dezactivați sau ștergeți sarcina în Programatorul de activități. Pentru a opri un script lansat manual, apăsați Ctrl+C în fereastra sa PowerShell.