Windows 10 може да поддържа отделни аудио профили за различни аудио устройства. За всяко аудио устройство, което свързвате, можете да зададете различно ниво на силата на звука и когато устройството е свързано, силата на звука ще се регулира автоматично. Разбира се, никой не поддържа аудио устройство заглушено през цялото време. Те ще увеличават или намаляват силата на звука, но никой обичайно не заглушава аудиоустройството.
Ако използвате чифт слушалки с вашия работен плот и често се налага да ги изключвате, можете да използвате малко скрипт PowerShell, който автоматично ще заглуши звука, когато изключите слушалките.
Това е нещо, което правят мобилните телефони, т.е. когато изключите слушалките, музиката спира автоматично. Логиката зад това е, че или сте слушали музика, или случайно сте извадили слушалките и се нуждаете от бърз начин да я изключите. Сценарият е написан на същия принцип от Пратеек Сингх от GEEKEEFY.
Отворете Бележника и поставете следното;
[Cmdletbinding ()] Param () # Добавяне на дефиниции за достъп до аудио API. Add-Type -TypeDefinition @ ' използвайки System. Runtime. InteropServices; [Ръководство ("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] интерфейс IAudioEndpointVolume { // f (), g (),... са неизползвани слотове за COM метод. Определете ги, ако ви интересува. int f (); int g (); int h (); int i (); int SetMasterVolumeLevelScalar (float fLevel, System. Ръководство pguidEventContext); int j (); int GetMasterVolumeLevelScalar (out float pfLevel); int k (); int l (); int m (); int n (); int SetMute ([MarshalAs (UnmanagedType) Bool)] bool bMute, Система. Ръководство pguidEventContext); int GetMute (вън bool pbMute); } [Ръководство ("D666063F-1587-4E43-81F1-B948E807363F"), InterfaceType (ComInterfaceType InterfaceIsIUnknown)] интерфейс IMMDevice { int Активиране (ref система). Guid id, int clsCtx, int activationParams, out IAudioEndpointVolume aev); } [Guid ("A95664D2-9614-4F35-A746-DE8DB63617E6"), InterfaceType (ComInterfaceType. InterfaceIsIUnknown)] интерфейс IMMDeviceEnumerator { int f (); // Неизползван. int GetDefaultAudioEndpoint (int dataFlow, int роля, крайната точка на IMMDevice); } [ComImport, Guid ("BCDE0395-E52F-467C-8E3D-C4579291692E")] клас MMDeviceEnumeratorComObject {} публична класа Audio { статичен IAudioEndpointVolume Vol () { var enumerator = нов MMDeviceEnumeratorComObject () като IMMDeviceEnumerator; IMMDevice dev = null; Маршал. ThrowExceptionForHR (Enumerator. GetDefaultAudioEndpoint (/ * eRender * / 0, / * eMultimedia * / 1, out dev)); IAudioEndpointVolume epv = null; var epvid = typeof (IAudioEndpointVolume) .GUID; Маршал. ThrowExceptionForHR (Дев. Активиране (ref epvid, / * CLSCTX_ALL * / 23, 0, вън epv)); връщане epv; } публичен статичен поплавък Обем { получи {float v = -1; Маршал. ThrowExceptionForHR (Vol (). GetMasterVolumeLevelScalar (out v)); return v;} набор {Маршал. ThrowExceptionForHR (Vol (). SetMasterVolumeLevelScalar (стойност, система. GUID. Празна));} } публично статично bool Mute { получите {bool mute; Маршал. ThrowExceptionForHR (Vol (). GetMute (извън звука)); връщане на звука; } набор {Маршал. ThrowExceptionForHR (Vol (). SetMute (стойност, система. GUID. Празна)); } } } '@ -Verbose Докато ($ true) { # Изчистете всички събития в текущата сесия, тъй като е в безкраен цикъл, за да направите нов старт, когато цикълът започне. Get-Event | Remove-Event -ErrorAction SilentlyContinue # Регистриране на събитието и чакане на събитието да се задейства. Регистрация-WmiEvent -Class Win32_DeviceChangeEvent. Wait-Event -OutVariable Event | Out-Null $ EventType = $ Event.sourceargs.newevent | ` Сортиране-обект TIME_CREATED -Напред | ` Select-Object EventType -ExpandProperty EventType -First 1 #Условна логика за работа, кога да изключите / изключите устройството чрез аудио API. Ако ($ EventType -eq 3) { [Аудио]:: Изключване на звука = $ true. Напишете многословно „Заглушено [$ ((Get-Date) .tostring ())]“ } elseif ($ EventType -eq 2 -и [Audio]:: Изключване -eq $ true) { [Аудио]:: Изключване на звука = $ false. Напишете многословно "UnMuted [$ ((Get-Date) .tostring ())]" } }
Запазете го с разширението на PS1 файл. Уверете се, че изберете „Всички файлове“ от падащия тип на файла. Дайте име на файла, което ще ви каже с един поглед какво прави. Запазете го на някое място, което е малко вероятно да го изтриете случайно, но също и там, където можете лесно да го намерите, ако трябва.
PowerShell не може просто да стартира автоматично скрипт. Има вградена мярка за сигурност, която не му позволява да го прави, но има начин за това. Имаме подробна статия за това как можете да направите точно това. Следвайте инструкциите за автоматично стартирайте скрипта PowerShell току-що създадохте и използвайте планирана задача, за да стартирате скрипта всеки път, когато стартирате компютъра си.
Освен това можете ръчно да стартирате скрипта, когато стартирате системата си. Използвам го по-малко от 30 минути и не знам как живеех без него преди.
Има много инструменти на разположение там, които следят за всички и...
Имейл, Facebook и Twitter станаха толкова важна част от живота ни, ...
Случвало ли ви се е някога да срещнете програма или приложение, кое...