HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2023/02/25

Windowsでオーディオ出力をワンクリックやショートカットで一発で素早く切り替える方法 Windowsでオーディオ出力をワンクリックやショートカットで一発で素早く切り替える方法

(テレワークに便利なイヤホンで Web会議、それ以外はスピーカーで音楽等、オーディオデバイスをプログラムで変更する方法)

Tags: [Windows], [無人インストール]




● Windowsでオーディオ出力をワンクリックやショートカットで一発で素早く切り替える方法
 テレワークに便利なイヤホンで Web会議、それ以外はスピーカーで音楽等、オーディオデバイスをプログラムで変更する方法。

 とりあえず、ググって沢山出てきた。
 ここの情報を元に自分専用の便利アプリを作成します。

Windowsの音声出力先を変えるショートカット作成
 在宅ワーク移行時の事を考えて作ったっぽい。
 PowerShellのスクリプトなのでプログラムのビルド等が不要。

 PowerShellのスクリプトの上記が一番手軽で目的を実現できるかな?

 「出力先として利用可能なデバイス一覧を表示」の内容を Windowsの PowerShellにコピペしたら動きました!(スクリプトのファイル化しなくても直接実行できた)
・「出力先として利用可能なデバイス一覧を表示」の内容を Windowsの PowerShellにコピペしたら動きました!
「出力先として利用可能なデバイス一覧を表示」の内容を Windowsの PowerShellにコピペしたら動きました!



 「音声出力先の切り替え」の内容を deviceSet.ps1のファイル名で保存して BLOGの通りにショートカットを作成します。

 が、「セキュリティ エラー」が出ます。残念。(セキュリティ的に有効にしたくない)
about_Execution_Policies
このシステムではスクリプトの実行が無効になっているため、ファイル deviceSet.ps1 を読み込むことができません。
詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
・PowerShell about_Execution_Policies UnauthorizedAccess セキュリティ エラー
PowerShell about_Execution_Policies UnauthorizedAccess セキュリティ エラー



● PowerShellのセキュリティ エラーを解決する方法
 「音声出力先の切り替え」の $cSharpSourceCode = @"から"@までの中身はそのまま C#のソースとしてビルドできました。これで「セキュリティ エラー」を解決できました!

using System;
using System.Runtime.InteropServices;

namespace HogeHogeApp
{
    class Program
    {
        static void Main(string[] args)
        {
            PolicyConfigClient.SetDefaultDevice(args[1]);
        }
    }

    // ここに中身をコピペする
    internal enum ERole : uint
    {
        eConsole = 0,
        eMultimedia = 1,
        eCommunications = 2,
        ERole_enum_count = 3
    }
    [Guid("F8679F50-850A-41CF-9C72-430F290290C8"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]

    ...

            catch
            {
                return 1;
            }
        }
    }
}


●その他の参考資料

AudioSwitcher Version 1.x.x.x
Audio Switcher

 上とは別の AudioSwitcher、GitHubだけどソースコードは無い。
AudioSwitcher ごりへい

Changing your Windows audio device programmatically using VC++
 コントロールパネルのボタン等をプログラムから操作する間接的に設定する方法。
 プログラムから Windowsの要素を操作するサンプルとしても使える。

 下記は C++なので私の理想に一番近い。
WindowsAudioOutput Library
 C++ library which allows to work with Windows audio output devices.

結局、WindowsAudioOutput Libraryで実現できた!
setdefault 数字 で設定できる!!
WindowsAudioOutputExample.exe setdefault 0
WindowsAudioOutputExample.exe setdefault 1
WindowsAudioOutputExample.exe setdefault 2
WindowsAudioOutputExample.exe setdefault n

 下記は C++なので私の理想に一番近い。
DefaultAudioChanger
 Default Audio Changer is a program that can change the default audio device on a Windows 7, 8 and 10 OS-es.

 下記は C++なので私の理想に一番近い。
How to change audio output/input devices? Pin
 が、「無効な MCI デバイス ID」になってしまう。

waveInGetNumDevs function (mmeapi.h)

waveOutGetDevCaps function (mmeapi.h)

mciSendCommand function

#include <windows.h>
#pragma comment (lib, "winmm.lib")
#include <mmsystem.h>
#include <iostream>
#include <stdio.h>

int main()
{
  int AIDChoise;
  UINT nDevices = waveInGetNumDevs();  // Get No. of devices
  MCI_WAVE_SET_PARMS parms;
  DWORD rc;
  TCHAR ErrMsg[256];

  WAVEINCAPS inwcps;
  WAVEOUTCAPS outwcps;

  for (int k=0; k < nDevices; k++)  // Get input audio devices
  {
    waveInGetDevCaps(k,&inwcps,sizeof(inwcps));
    printf(" In devname %d : %s \n",k,inwcps.szPname);
  }
  for (int k=0; k < nDevices; k++)  // Get output audio devices
  {
    waveOutGetDevCaps(k,&outwcps,sizeof(outwcps));
    printf(" Out devname %d : %s \n\n",k,outwcps.szPname);

  }
  printf("Please select output device :");
  scanf_s(" %d",&AIDChoise);
 //  getchar();

  switch(AIDChoise)
  {
  case 0:
    printf("0 ~~~~~~~~~");
    parms.wOutput = 0;
    rc = mciSendCommand(0, MCI_SET, MCI_WAVE_OUTPUT, (DWORD)&parms);
    if ( rc != 0 )
      mciGetErrorString(rc, ErrMsg, 256);
      printf("Error Msg : %s \n", ErrMsg);
// Error Msg : 無効な MCI デバイス ID です。MCI デバイスの開いているときに返された ID を使用してください。
    break;
  case 1:
    printf("1 ~~~~~~~~~");
    parms.wOutput = 1;
    rc = mciSendCommand(1, MCI_SET, MCI_WAVE_OUTPUT, (DWORD)&parms);
    if ( rc != 0 )
      mciGetErrorString(rc, ErrMsg, 256);
      printf("Error Msg : %s \n", ErrMsg);
// Error Msg : 無効な MCI デバイス ID です。MCI デバイスの開いているときに返された ID を使用してください。
    break;
  default:
    printf("2~~~~~~~~~");
    printf("Invalid command.. \n");
    break;
  }

  return 0;
}



Tags: [Windows], [無人インストール]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

【2023年対応】 Microsoft Visual C++ ランタイムライブラリ 再頒布可能パッケージのまとめ 2005~2022まで
【2023年対応】 Microsoft Visual C++ ランタイムライブラリ 再頒布可能パッケージのまとめ 2005~2022まで

  Microsoft Visual C++ 2005、2008、2010、2012、2013、2015、2017、2019、2022の各バージョンの最新版 MSVC Runtime librariesのまとめ

Visual Studioの C#で開発した .Netアプリの難読化をする方法
Visual Studioの C#で開発した .Netアプリの難読化をする方法

  C#で開発した .Netアプリの難読化は必須事項です、素の状態では簡単に内部を解析されます

Visual Studioの C#で開発した .Netアプリを逆コンパイルして、中身の実装を覗き見る方法
Visual Studioの C#で開発した .Netアプリを逆コンパイルして、中身の実装を覗き見る方法

  C#で開発した .Netアプリは比較的簡単に元のソースコードに戻せます

Visual Studio 2019 Professional v16.4を無人インストールする方法、完全自動でインストール
Visual Studio 2019 Professional v16.4を無人インストールする方法、完全自動でインストール

  VS2019 v16.4を完全オフラインインストール&コンポーネント選択の事前設定で自動インストールする

Visual Studio 2017 Professional 15.9を無人インストールする方法、完全自動でインストール
Visual Studio 2017 Professional 15.9を無人インストールする方法、完全自動でインストール

  VS2017を完全オフラインインストール&コンポーネント選択の事前設定で自動インストールする

Visual Studio 2015 Professionalを無人インストールする方法、完全自動でインストール
Visual Studio 2015 Professionalを無人インストールする方法、完全自動でインストール

  VS2015を Update 3適用済みとコンポーネント選択の事前設定でインストール時の手間を省く

Visual Studio 2013 Professionalを無人インストールする方法、完全自動でインストール
Visual Studio 2013 Professionalを無人インストールする方法、完全自動でインストール

  VS2013を Update 5適用済みとコンポーネント選択の事前設定でインストール時の手間を省く

Visual Studio 2005 Professionalに Service Pack 1を統合して無人インストールする方法
Visual Studio 2005 Professionalに Service Pack 1を統合して無人インストールする方法

  VS2005に SP1を統合 & 完全自動でインストール、SP1の適用とコンポーネントの事前設定でインストールの手間を省く

Visual Studio 98を Windows 10 1903にインストールする方法
Visual Studio 98を Windows 10 1903にインストールする方法

  VS98 Visual Studio 98を Windows 10 19H1にインストールする方法

Visual Studio Communityのまとめ Professional と同等機能が無償
Visual Studio Communityのまとめ Professional と同等機能が無償

  Visual Studio Communityの 2013 Update 5、2015 Update 3、2017 version 15.6のまとめ

C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用
C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用

  Visual Studio 2013の C# .NET 4.5で ZipFile.ExtractToDirectoryを使い、UnZip解凍ツールを作成

Visual Studio 2013に Windows 10 SDK + UwpDesktopで UWPの機能を素の Windowsアプリから使用
Visual Studio 2013に Windows 10 SDK + UwpDesktopで UWPの機能を素の Windowsアプリから使用

  VS2013に Win 10 SDKをインストールして Uwp Desktopで UWPの機能を従来の Windowsアプリで動かす

Visual Studio 2013の C# .NETで 日本語対応の OCR文字認識アプリを自作する方法
Visual Studio 2013の C# .NETで 日本語対応の OCR文字認識アプリを自作する方法

  オフライン環境で動作可能な 世界各国語対応の OCR文字認識アプリを C# .NETで作成、MS製 OCRライブラリを使用

Visual Studio 2013の C#で日本語対応の手書き文字認識アプリを自作する方法
Visual Studio 2013の C#で日本語対応の手書き文字認識アプリを自作する方法

  オフライン環境で動作する世界各国語対応の手書き文字認識アプリを作成、MS製 手書き認識ライブラリを使用

Open XML SDKを使用して Officeのファイルを C#で自在に操る方法
Open XML SDKを使用して Officeのファイルを C#で自在に操る方法

  Microsoft Officeのファイルをプログラムで生成したり直接中身の読み取りができます

Visual Studioの各バージョンと開発できる .NET Frameworkの各バージョンのまとめ
Visual Studioの各バージョンと開発できる .NET Frameworkの各バージョンのまとめ

  .Microsoft.NET Framework Developer Packの各バージョンのダウンロードまとめ。言語パック等

Windows 10対応 Microsoft Speech使用の音声認識アプリ
Windows 10対応 Microsoft Speech使用の音声認識アプリ

  SpeechRecognizeApp 音声認識エンジンを使用してマイク入力の音声を認識します

Windows 10の音声合成エンジンを使用して入力した文字列を喋る & Waveファイル書き出し
Windows 10の音声合成エンジンを使用して入力した文字列を喋る & Waveファイル書き出し

  SpeechApp Windows 10用 Speech 音声合成 Text-to-Speech TTSのアプリ

Visual Studioの C#や MFC C++用のサンプルアプリのリンク集
Visual Studioの C#や MFC C++用のサンプルアプリのリンク集

  Visual Studioの C#や MFC C++でアプリを作る時の参考資料として

Windowsの Input Method Manager IMEや TSF Text Services Frameworkの公式情報源のまとめ
Windowsの Input Method Manager IMEや TSF Text Services Frameworkの公式情報源のまとめ

  Windowsで IME Input Method Manager関連のアプリを作成する時の情報 ImeTrayもこの辺を必死に読んだ

Microsoft Office 2016を無人インストール(自動インストール)する方法
Microsoft Office 2016を無人インストール(自動インストール)する方法

  インストールするコンポーネントを事前に設定する事で同一環境の構築が楽にできます MSオフィス 2016

Windows 10を全自動で最後まで手間要らずでインストールする方法
Windows 10を全自動で最後まで手間要らずでインストールする方法

  autounattend.xmlの応答ファイルを使用して Windows 10を無人インストールする。大量展開時に便利

Adobe Acrobat Reader関係のまとめ 2018年版、自動インストール、無人インストール方法
Adobe Acrobat Reader関係のまとめ 2018年版、自動インストール、無人インストール方法

  アップデート手順など、Adobe Reader XI、X、Acrobat Reader 9、Acrobat Reader 8




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2023 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/software/windows_change_audio_devide/