プログラマブルキーボードの紹介で書きましたが、私はプログラマブルキーボードからWindowsのiTunesを操作できるようにしています。
この中で一番難しかったのが、バックグラウンドで起動しているiTunesを操作する方法です。
色々やり方はあるはずだと思いますが、私はiTunesのCOMライブラリ経由でiTunesを制御するC#のコンソールアプリケーションを作りました。
ここでは、そのアプリの作り方を紹介します。
このコンソールアプリ自体は、以下からダウンロードできますので、欲しい方はダウンロードください。
使用するiTunes
Windows PCにiTunesをインストールする場合、Microsoft Storeからインストールする方法と、インストーラをAppleのWebサイトからダウンロードしてインストールする方法があります。
しかし、Microsoft Storeからインストールしてしまうと、iTunes制御用のCOMライブラリがインストールされません。
ですので、以下のAppleのWebサイトからダウンロードしてインストールします。
iTunes – Apple
既にMicrosoft StoreのiTunesをインストールされている方は、一度アンインストールして、再度上記インストーラからインストールする必要があります。
iTunes制御 C# コンソールアプリケーションの作り方
Visual Studioを使って作ります。
2024年1月現在だと、Visual Studio 2022 Communityが無料でダウンロードできるので、これが一番簡単でしょう。
手順は、以下のようになります。
Visual Studio 2022インストール
Visual Studioのページから、インストーラをダウンロードします。
コンポーネントは、「.NET デスクトップ開発」にチェックが入っていればOKです。

新規プロジェクトの作成
インストールが終わったら、Visual Studio 2022を起動し、「新しいプロジェクトの作成」を選択します。

プロジェクトのタイプは、「コンソールアプリ(.NET framework)」を選択し、次へ進みます。
(「コンソールアプリ」でも作成できますが、ここでは「コンソールアプリ(.NET framework)」作成するものとして説明を続けます。)

プロジェクトの名前、保存場所を設定します。プロジェクトの名前は「iTunesController」とします。
場所は、パソコン内の好きなフォルダを選択してください。
フレームワークは、下記では.NET framework 4.7.2が選択されていますが、何でも大丈夫です。
入力し終わったら「作成」を押します。

プロジェクトが作成されると、以下のような画面になります。

iTunes Type Libraryへの参照の追加
右側のソリューションエクスプローラのiTunesControllerプロジェクト内の「参照」を右クリックします。
参照を追加する画面が開いたら、左側で「COM」を選び、右側で「iTunes ~ Type Library」を探して、チェックを入れ、「OKを押します。

iTunesを制御するコードの記述
Program.csに、以下のようにコードを記述してください。
using iTunesLib;
using System.IO;
using System.Reflection;
namespace iTunesController
{
internal class Program
{
static void Main(string[] args)
{
// Exeファイル名を取り出して、「-」以降の文字列に従って処理を切り替え
var exeName = Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location);
var split = exeName.Split('-');
if (split.Length == 1)
{
return;
}
var iTunes = new iTunesApp();
switch (split[1])
{
case "VolumeUp":
iTunes.SoundVolume += GetChangeSoundValue(iTunes.SoundVolume);
break;
case "VolumeDown":
iTunes.SoundVolume -= GetChangeSoundValue(iTunes.SoundVolume);
break;
case "Next":
iTunes.NextTrack();
break;
case "Prev":
iTunes.BackTrack();
break;
case "PlayPause":
iTunes.PlayPause();
break;
}
}
private static int GetChangeSoundValue(int currentValue)
{
if (currentValue >= 50)
{
return 5;
}
if (currentValue >= 20)
{
return 3;
}
return currentValue >= 10 ? 2 : 1;
}
}
}
ビルド
メニュー「ビルド」-> 「ソリューションのビルド」を選択します。
ビルドが成功すると、iTunesControllerプロジェクトフォルダ内の「bin\Debug」以下に「iTunesController.exe」が作成されます。
コピー & リネーム
このexeは、自分のファイル名に応じて挙動が変わります。
ビルドされた「iTunesController.exe」を複数コピーして、以下のようにリネームします。
| iTunesController-Next.exe | 次の曲へ |
| iTunesController-PlayPause.exe | 再生/停止 |
| iTunesController-Prev.exe | 前の曲へ |
| iTunesController-VolumeDown.exe | 音量DOWN |
| iTunesController-VolumeUp.exe | 音量UP |
それぞれのExeをダブルクリックして起動すれば、iTunesの操作が行われます。
ちなみに、このiTunesのCOMライブラリは、再生・停止、曲移動、音量変更以外にも様々なiTunesの制御が可能です。
コードをいじれば、他の操作を行うアプリケーションも作れます。
作成したアプリケーションの活用法
一度exeを作れば、プログラマブルキーボードだけでなく、マウスボタンにアプリを割り当てることも可能です。
私はLogicoolのワイヤレスマウスを使っていますが、Logicoolのマウスはボタンにアプリケーションの起動を割り当てることができます。
iTunesをCOM制御する方法は、マイナーな使い方のようですが、使い方によってはとても便利です。
C#のアプリケーションを自作するのは、プログラム経験が全くない方にはハードルが高いかもしれませんが、色々と応用が利くのでおすすめです。


コメント