web-dev-qa-db-ja.com

Windows 7でマイクとスピーカーを交換するより簡単な方法は?

マイクを内蔵したヘッドセットと、BlueYetiマイクを搭載したスピーカーのセットがすべてWindows7PCに接続されています。

サウンドオプションに移動したり、デフォルトのオーディオデバイスとデフォルトの通信デバイスを手動で交換したりせずに、ヘッドセットマイク/スピーカーとYetiマイク&スピーカーを切り替えられるようにしたいと思います。

これを行うためのソフトウェアをグーグルで検索しましたが、マイク/録音デバイスで機能する結果は見つかりませんでした。これを行うソフトウェアはありますか、それとも私が自分で書くことを検討しなければならないものですか?

2
David Ross

Nircmdsetdefaultsounddevice コマンドは助けます:

nircmd setdefaultsounddevice [デバイス名] {役割}

Windows 7/Vista/2008でデフォルトのサウンドデバイスを設定します。 [デバイス名]は、Windowsのサウンドデバイスリストに表示されるデバイスの名前です。例:スピーカー、ライン入力、マイク、 等々...

{Role}パラメーターはオプションであり、次のいずれかの値をカウントできます:コンソール(デフォルト値)の場合、1マルチメディアの場合、2コミュニケーション用。

例:

setdefaultsounddevice "Line In"
setdefaultsounddevice "Microphone" 2

これのショートカットは、手動で、または cmdshortcut または cmdshortcutkey)を使用して簡単に作成できます。

この AutoHotkeyフォーラムスレッド には、役立つと思われるスクリプトも含まれています。

最後に、 Set Sound Device は、同じことを行うのに役立つコンパイル済みのAutoItスクリプトです。

SSDを使用すると、コマンドラインからWin7のデフォルトのサウンドデバイスを変更できます(Vistaでも機能しますが、これはテストされていません)。コマンドラインからSSDを呼び出す場合、構文は「SSD.exe#」です(#はリストから選択するサウンドデバイスの番号です。デバイスを選択可能にするには、[デフォルトを選択]ドロップダウンボックスを有効にする必要があります)。

1

2
Karan

AutoItを使用し、独自の.EXEをコンパイルして、スワッププロセスを自動化します。
より快適にするために、ショートカットをその.EXEにバインドします。

このスクリプトは、デバイスを手動で交換する場合とまったく同じように機能しますが、マウスではなくキーボードを使用する場合のみです。

使い方

  1. ダウンロードして解凍 AutoIt Self Extracting Archive
  2. このコードをコピーして新しいテキストファイルに貼り付けます

    Run("c:\windows\system32\control.exe mmsys.cpl")
    WinWaitActive("Sound")
    WinSetOnTop ("Sound","Sound", 1 )
    
    ;Toggle between sound device 1 and 2
    send("{DOWN}")
    if ControlCommand("Sound", "", 1002, 'IsEnabled') Then
        ControlClick("Sound", "Set Default", 1002)
        $message = "Headset 1"
    else
        send("{DOWN}")
        ControlClick("Sound", "Set Default", 1002)
        $message = "Headset 2"
    EndIf
    
    ;Toggle between microphone device 1 and 2
    Send("{TAB 5}")
    Send("{RIGHT}")
    send("{DOWN}")
    if ControlCommand("Sound", "", 1002, 'IsEnabled') Then
        ControlClick("Sound", "Set Default", 1002)
    else
        send("{DOWN}")
        ControlClick("Sound", "Set Default", 1002)   
    EndIf
    
    WinClose("Sound")
    TrayTip("", $message, 5)
    Sleep(2000)
    
  3. deviceswapper.au3として保存します
  4. AutoIt\install\Aut2Exe\Aut2exe.exeを開き、.AU3ファイルを.EXEに変換します
  5. その.EXEへのショートカットを作成し、適切なショートカットキーを設定します

注:ローカライズされたWindowsバージョン(ドイツ語、スペイン語、フランス語など)では、
文字列Set Defaultをローカライズされたボタンテキストに置き換える必要があります。

ここ 使用されているすべてのコマンドの詳細を読むことができます。

1
nixda

上記の各回答からコンポーネントを取得し、それをAutoHotKeyスクリプトにロールインして、最終的に行ったことは次のとおりです。 nircmdをC:\ binに配置しました(実際には、システムパスのどこでも機能します)が、残りはかなり自明であるはずです。

; This sets it to desktop speakers, so that the toggle works correctly
; without having to detect the setting from system
Run C:\bin\nircmd.exe setdefaultsounddevice "Desktop" 0
Run C:\bin\nircmd.exe setdefaultsounddevice "Desktop" 2
Run C:\bin\nircmd.exe setdefaultsounddevice "Desktop Mic" 0
Run C:\bin\nircmd.exe setdefaultsounddevice "Desktop Mic" 2

DesktopSpeakersActive = 1

; Change this to change which key this is bound to
Pause::
if DesktopSpeakersActive = 0
{
Run C:\bin\nircmd.exe setdefaultsounddevice "Desktop" 0
Run C:\bin\nircmd.exe setdefaultsounddevice "Desktop" 2
Run C:\bin\nircmd.exe setdefaultsounddevice "Desktop Mic" 0
Run C:\bin\nircmd.exe setdefaultsounddevice "Desktop Mic" 2
DesktopSpeakersActive = 1
TrayTip, , Desktop Speakers
}
else
{
Run C:\bin\nircmd.exe setdefaultsounddevice "Headset" 0
Run C:\bin\nircmd.exe setdefaultsounddevice "Headset" 2
Run C:\bin\nircmd.exe setdefaultsounddevice "Headset Mic" 0
Run C:\bin\nircmd.exe setdefaultsounddevice "Headset Mic" 2
DesktopSpeakersActive = 0
TrayTip, , Headset Speakers
}
return
0
David Ross