この記事を読んで実装しただけなので、この記事を読んだほうがいいです。
[PowerShell]再生デバイスの「既定のデバイス」をワンアクションでトグルする - Qiita
スクリプト
Indexまわりがハードコーディングです。
# [PowerShell]再生デバイスの「既定のデバイス」をワンアクションでトグルする - Qiita # https://qiita.com/heliojack/items/1cf3cc74f180374618ce#%E5%85%88%E4%BA%BA%E3%81%AE%E7%9F%A5%E6%81%B5powershell%E3%81%8C%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88 Set-Variable -Name forSound -Value 1; Set-Variable -Name forVoice -Value 2; $before = (Get-AudioDevice -Playback).Index; $after = $forSound; switch ($before) { $forSound { $after = $forVoice; } $forVoice { $after = $forSound; } } $null = Set-AudioDevice -Index $after;
EXE化
PS2EXEというソフトでEXE化した。
MScholtes/PS2EXE: Module to compile powershell scripts to executables
ps2exe .\再生デバイスのトグル.ps1 -noConsole
実装のコツ
- ps2exeに-noConsoleオプションをつけてウインドウでなくした
- -noConsoleオプションが有効だとウインドウの代わりにダイアログが出る 無駄なメッセージがあると邪魔なので、$nullに捨てた