DDE コマンド

はじめに

このページの内容は、普通にuLilithを利用するだけの場合は基本的には覚える必要はありません。
「uLilithの関連付けの動作を手動で設定したい・細かく設定したい」場合や、
「uLilithを他のアプリケーションと連携して動作させたい」場合に必要になります。

DDEClient.exe / DDEClientC.exe について

uLilithのパッケージには、「DDEClient.exe」と「DDEClientC.exe」というDDEクライアントが同梱されています。
(『DDE(動的データ交換)』とは、アプリケーション間の通信を行う技術のことで
 DDEクライアントとは、その通信を行うためのアプリケーションです。)
このDDEClient.exe / DDEClientC.exeを利用すると、
  • コマンドラインツールからuLilithを操作する
  • 別のアプリケーションにインターフェースを肩代わりさせる
 (uLilithの操作を別のアプリケーションから行ったり、
  再生モードや再生ファイルのタグ情報など、uLilithの状態を表す文字列を
  別のアプリケーション上で表示することができる)
といったことが可能になります。
また、DDEClient.exeは
ファイルの関連付け(エクスプローラ上で音楽ファイルをダブルクリックでuLilithを起動・ファイル再生)にも使用されます。

なお、DDEClient.exe / DDEClientC.exeを使用して
任意のアプリケーションを制御するには、設定ファイル(※)を作成する必要がありますが
uLilith.exeを制御する場合は追加の設定ファイルは特に必要ないようです。
※ DDEClient.exe / DDEClientC.exe と同じフォルダに配置した「DDEClient.ini」

DDEコマンドについて

DDEコマンドとは、DDEClient.exe・DDEClientC.exe を通してuLilithを操作するためのコマンド群です。
(他のアプリケーションで、アプリケーションをショートカットから起動するときにつける
 「起動パラメータ」や「起動オプション」のようなものだと考えると理解しやすいかもしれません)
使用に際し、コマンドラインについて多少の知識が必要になります。

DDEコマンドの使い方

コマンドライン形式です。
パッケージに同梱されている DDEClient.exe または DDEClientC.exe にコマンドとパラメータを渡すことで、uLilith を制御します。
DDEClient.exe はウィンドウなどを一切生成しません。
一方、DDEClientC.exe は標準エラー出力にメッセージおよび結果を表示します。
なお、基本的な書式は次の通りになります。
[DDEClient.exe または DDEClientC.exe のパス] [コマンドタイプ] [コマンド] [パラメータ]
このうち、コマンドタイプは省略可能です。(省略した場合はXTYP_EXECUTEとして扱われます。)
詳しい仕様は下記の「DDEコマンドの仕様」の項を参照して下さい。

例)Dドライブ直下の「sample1.wav」と「sample2.mp3」をプレイリストに追加し、位置をプレイリストの最初に合わせる
(uLilithが『C:\Program Files\uLilith』にインストールされている場合の例です。
 他のフォルダにインストールされているときはそのフォルダに読み替えてください。)
"C:\Program Files\uLilith\DDEClient.exe" XTYP_EXECUTE /add "D:\sample1.wav" "D:\sample2.mp3" /pos 0

DDEコマンドの仕様

  • コマンドライン形式。コマンドとパラメータで指定する。
    パラメータがないコマンドも存在する。
  • コマンドとパラメータ間はスペースで区切る。
  • 矛盾するパラメータや、パラメータに1つしか許されていないのに複数現れた場合は後者を採用する。
  • コマンドが省略されてパラメータだけが現れた場合は、直前のコマンドのパラメータとみなす。
    一番最初(プレイヤーが起動した直後)は /open が指定されているものとみなす。
  • コマンド名の大文字・小文字は区別しない。
  • コマンド名は / から始まる。
  • /play 等の操作は、ファイルをいったんプレイリストに格納(/add or /open)、またはダイレクトにオープン(/dopen)した後でおこなう。
  • 現在のところ、エラーがおきたときは無視する。(考えない)
  • ファイル名は "" で括っても括らなくてもいい。ただし、間にスペースが含まれる場合は "" で括らなければならない。
  • サービス名もトピック名も "uLilithDdeControl"
    ※ 旧 Lilith とは別にコントロールできるよう、変更されているので注意。
  • 返り値も、大文字小文字を区別しないで判断すること

コマンドリスト(XTYP_EXECUTE 系)

uLilith を操作するコマンド群です。

プレイリスト操作系

コマンド名 書式 機能
/add /add "ファイル名" "ファイル名" ... パラメータに指定したファイルを、プレイリストに追加します。
一番最初(プレイリストが空の状態)に追加した時には、
/pos 0 (下記参照)します。
/delete /delete [番号]
/delete all
/delete clearonly
プレイリストを削除します。
パラメータに[番号]が指定された場合、
対応するナンバー([番号]-1 のナンバー)の楽曲を削除します。
all の場合は、プレイリストを全て削除した上で、
再生中のファイルを閉じます。
clearonly の場合もプレイリストを全て削除しますが、
再生中のファイルは閉じません。
/pos /pos [番号] プレイリスト内の [番号] に位置を合わせます。
[番号] はプレイリストのナンバー(No.)から1を引いた値です。
[番号] に -1 が指定された場合、
プレイリストの末尾の番号を指定したとみなします。

プレイリスト操作補助系(ファイルオープン)

コマンド名 書式 機能
/open /open "ファイル名" "ファイル名" ... プレイリストを全て削除し、指定したファイルをプレイリストに追加し、
プレイリスト内の位置を最初にし、更にその先頭のファイルを開きます。
/delete all /add "ファイル名" "ファイル名" ... /pos 0
と同じ意味です。
/dopen /dopen "ファイル名" プレイリストを介さないでファイルを開きます。
フォルダやリストファイル、cue シートなどを与えたときは、
最初に見つかったファイルのみ開き、それ以外の結果は破棄します。
/dopen "ファイル名" /play」等として使用します。
/addopen /addopen "ファイル名" 指定したファイルをプレイリストに追加し、
プレイリスト内の位置を追加したファイルの先頭にし、
更にその先頭ファイルを開きます。
旧 Lilith の関連付け「追加して再生」と同じ動作です。
/addopenparent /addopenparent "ファイル名" 指定したファイルがあるフォルダをプレイリストに追加し、
プレイリスト内の位置を追加したファイルの先頭にし、
更にその先頭ファイルを開きます。

演奏制御系

コマンド名 書式 機能
/seek /seek [シーク時間] プレイリストの現在位置にあるファイルをシークします。
再生中かどうかは問いません。
シーク時間の単位はプレイヤー依存です。(デフォルトは ms です。)
なお、Lilith は % sec ms byte sample に対応しています。
/play /play プレイリストの現在位置にあるファイルを開き、再生します。
既にファイルが開かれている場合には、それを再生します。
再生の挙動は、/playmode によって予め指定しておく必要があります。
/pause /pause 現在再生中のファイルを一時停止します。
既に一時停止されている場合は、再生を再開します。
/stop /stop 現在再生中のファイルを停止し、閉じます。
/playmode /playmode 1shot
/playmode repeat
/playmode normal
/playmode shuffle
/play の再生方法を指定します。
※ uLilith でパラメータの名称が変更されたので、
旧 Lilith のユーザの方は注意して下さい。
/volume /volume [ボリューム] 再生音量を0~100の範囲で変更します。
単位は % です。
/equalizer /equalizer on
/equalizer off
イコライザの有効/無効を切り替えます。
/next /next 既定の切り替え方法に従って、リストの次の曲へ切り替えます。
/back /back 既定の切り替え方式に従って、リストの前の曲へ切り替えます。
/changemode /changemode nonstop
/changemode crossfade
曲が末端に達したときに、次の曲へどのように切り替えるかを指定します。
nonstop = ノンストップ(ギャップレス)切り替え
crossfade = クロスフェード切り替え

プレイヤー制御系

コマンド名 書式 機能
/exit /exit プレイヤーを終了します。
/windowmode /windowmode window
/windowmode minimize
/windowmode toggle
プレイヤーのウィンドウモードを設定します。
toggle を指定すると、ウィンドウモードなら最小化、
最小化モードならウィンドウ化します。
※ uLilith でパラメータの名称が変更されたので、
旧 Lilith のユーザの方は注意して下さい。
「tasktray」→「minimize」に変更
/topmost /topmost on
/topmost off
最前面表示の有効/無効を切り替えます。
/activate /activate uLilith 本体をアクティブウィンドウ化します。
(内部でSetForegroundWindowを使用します。)
/pitchscale /pitchscale on [音程設定値]
/pitchscale off [音程設定値]
再生コントロールの音程変更の有効/無効の切り替えと、
設定値の変更を行います。
シングルアクションで、
OFFの状態から任意の値でのON状態へ変更できるように、
ON/OFFフラグと音程設定値をセットで指定します。
音程の範囲は、-120~+120 (単位:cent 1centは1/10半音)です。
また、音程設定値は省略することも可能です。
(省略した場合は、0が指定されます。)
/freqscale /freqscale on [周波数倍率設定値]
/freqscale off [周波数倍率設定値]
再生コントロールの周波数変更の有効/無効の切り替えと、
設定値の変更を行います。
シングルアクションで、
OFFの状態から任意の値でのON状態へ変更できるように、
ON/OFFフラグと周波数倍率設定値をセットで指定します。
周波数倍率の範囲は、50~200
(単位:% 100~200は、常に偶数値になるよう切り捨てられます)です。
また、周波数倍率設定値は省略することも可能です。
(省略した場合は、100が指定されます。)
/timescale /timescale on [速度倍率設定値]
/timescale off [速度倍率設定値]
再生コントロールの再生速度変更の有効/無効の切り替えと、
設定値の変更を行います。
シングルアクションで、
OFFの状態から任意の値でのON状態へ変更できるように、
ON/OFFフラグと速度倍率設定値をセットで指定します。
速度倍率の範囲は、50~200
(単位:% 100~200は、常に偶数値になるよう切り捨てられます)です。
また、速度倍率設定値は省略することも可能です。
(省略した場合は、100が指定されます。)
/facefile /facefile "ファイル名" 指定したファイル名のフェイス定義ファイルを読み込み、フェイスを変更します。
(ファイル名はフルパスが望ましい)
フルパスで指定されていない場合、
インストールフォルダ内の Face フォルダを基準フォルダとした
相対パスとして解釈します。
指定されたフェイスが既に使用されている場合、
および、アプリケーションが最小化あるいはアイコン化されている場合は、
何も行いません。

uLilithでは廃止予定のコマンド [演奏制御系]

コマンド名 書式 機能
/newplay /newplay プレイリストの現在位置にあるファイルを開き、再生を開始します。
既にファイルが開かれている場合も、
それを閉じてから新たに現在位置のファイルを開きます。
再生の挙動は、/playmode によって予め指定しておく必要があります。

uLilithでは廃止予定のコマンド [プレイヤー制御系]

コマンド名 書式 機能
/regist /regist レジストリの規定のキーに、実行ファイルのパスを書き込みます。
"HEKY_CURRENT_USER\\Software\\Project9k_Lilith\\Path" =
 "X:\\InstallDirectory\\ExecutionName.exe"
/unregist /unregist レジストリの規定キーの実行ファイルのパスを削除します。
/command /command [コマンドID] 任意のコマンドを実行します。
※ 筆者の環境では動作しませんでした。

コマンドリスト(XTYP_REQUEST 系)

結果を表示するコマンド群です。
DDEClient.exe では結果が出力されないので、実質的に DDEClientC.exe 専用となります。

プレイリスト操作系

コマンド名 書式 機能
/max /max プレイリスト内のファイルの総数を返します。
/pos /pos プレイリスト内の現在の位置を返します。

状況取得系

コマンド名 書式 機能
/status /status プレイヤーの現在の再生状態(play、pause、stop)を返します。
/seek /seek ms
/seek %
/seek byte
プレイリストの現在位置にあるファイルのシーク位置を返します。
シーク位置の単位はプレイヤー依存です。
(デフォルトの単位は ms です。)
なお、Lilith は % sec ms byte sample に対応しています。
/windowmode /windowmode プレイヤーのウィンドウモードの状況(window、minimized)を返します。
/volume /volume 再生音量を 0~100 の範囲で返します。
単位は % です。
/equalizer /equalizer イコライザの設定状態(on、off)を返します。
/program /program 実行モジュールのフルパス名を返します。
/topmost /topmost 最前面表示かどうか(on、off)を返します。
/query_dde_status /query_dde_status プレイヤーが正しく DDE メッセージを処理できる状態かどうかを問い合わせます。
dde_acceptable または、それ以外が返ります。[※1]
/fileinfo /fileinfo [タグ情報] 現在再生中のファイルの指定したタグ情報を文字列で返します。
指定できるタグ情報は以下[※2]表の通りです。
[※1] プレイヤー起動直後には、dde_acceptable が返ってこない場合があります。
   dde_acceptable が返らなかった場合、その時点での DDE メッセージの正しい処理は期待できません。
   dde_acceptable が返るまで、待機&再送を繰り返して下さい。
   一度 dde_acceptable が返った後は、正しい DDE メッセージの処理を期待できます。
[※2] /fileinfoコマンドで指定できるタグ情報
FileName ファイル名    Date 日付
FileType ファイル形式 Track トラック
BitRate ビットレート Genre ジャンル
Bits ビット深度 Comment コメント
Samplerate サンプリング周波数(Hz) PlayTime 曲の長さ(msec)
Mode 再生方式 Length ファイルサイズ(byte)
Title タイトル IsVBR 可変ビットレートかどうか
Artist アーティスト FilePath ファイルのパス
Album アルバム タイトル FileExt ファイルの拡張子

コマンドプロンプトでのDDEコマンドの使用

実際にDDEコマンドを使用してuLilithを制御してみましょう。
コマンドプロンプトを起動し、cd コマンドでカレントディレクトリをuLilithのインストールフォルダに変更しておきます。

uLilithを操作してみる

XTYP_EXECUTE系のコマンドを使用すると、uLilithを操作することができます。
まずはファイルを再生してみましょう。uLilithを起動し、ファイルは停止しておきます。
コマンドプロンプトのウィンドウ上に
C:\Program Files\uLilith>
と表示されていると思うので、そのまま > のすぐ後に
DDEClient.exe /play
と入力してEnterキーを押すと、uLilithがファイル再生を開始します。
XTYP_EXECUTE系のコマンドは「XTYP_EXECUTE」を入れても入れなくても動作します。
DDEClient.exe XTYP_EXECUTE /play
と入力しても同じ動作になります。

uLilithの情報を取得してみる

XTYP_REQUEST系のコマンドを使用すると、uLilithの再生状態やファイルのタグ情報など、uLilithに関する情報を取得できます。
ボリュームの値を取得してみます。(例:ボリュームを50%にしている状態)
C:\Program Files\uLilith>
と表示されているところに、
DDEClientC.exe XTYP_REQUEST /volume
と入力してEnterキーを押すと、
XTYP_REQUEST を選択しました。
コマンド /volume を送信します。
戻り値:
50
と、現在のボリュームの値がコマンドプロンプトのウィンドウ上に表示されます。
XTYP_REQUEST系のコマンドを使用する場合は、以下の2点に注意してください。
  • DDEClientC.exe のほうを使用する
  • コマンドの前に必ず「XTYP_REQUEST」をつける
「XTYP_REQUEST」を省略すると、XTYP_EXECUTEと解釈されるので情報が正しく取得できません。

この仕組みを利用し、uLilith以外のアプリケーションの中にDDEコマンドの送信動作や、
DDEコマンドの送信で返ってくる結果表示の取得の方法/手段を組み込むことにより、
uLilith以外のアプリケーション上からuLilithを操作したり、情報を取得したりすることができます。


関連付けやショートカットでの活用

DDEコマンドを利用すると、DDEClient.exeへのショートカットを利用したuLilithの制御や
Windowsのフォルダオプションでのファイルの種類の設定(関連付け設定)が可能になります。

DDEコマンドを利用したショートカットの作成・活用

DDEClient.exeへのショートカットを、DDEコマンドを組み合わせて作成すると、
ダブルクリックでuLilithの状態や動作を変更するショートカットを作成することができます。

例えば、エクスプローラ上で右クリック、「新規作成→ショートカット」で新しいショートカットの作成画面を開き、
"C:\Program Files\uLilith\DDEClient.exe" /playmode 1shot
(uLilithが『C:\Program Files\uLilith』にインストールされている場合)
上のようなショートカットを作成して、このショートカットを実行すると
uLilithの再生モードが「1shot再生」に変更されます。

通常の場合、エクスプローラ上にショートカットを作成するよりは、
uLilithの本体設定の「キー設定→ショートカットキー」でショートカットキーを設定し
ショートカットキーから制御するのをおすすめしますが、
他のアプリケーションからショートカットを作成してuLilithを制御する場合は
上のようにDDEClient.exeへのショートカットを作成し、
DDEコマンドを「起動パラメータ」として設定するとそのコマンドのとおりにuLilithを制御できます。

DDEコマンドを利用した関連付けの設定 (主にWindows 2000 / XP向け)

手動での関連付け手順の説明はファイルの関連付けのページへ移動しました。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2013年08月16日 19:24