AVeL Link Serverのサービス化

 PC-P1LANの起動サーバがこーなってるってことは、もしかして・・・と思い、確認してみると、やっぱりこっちもユーザーアプリケーションだった(苦笑)。

 とりあえず、PC-P1LANと同手順でサービス化することにする。
 インストールフォルダ内には、PC-P1LANの時と同じく、EXEファイルが二つ存在するが、この内「AvelLink.exe」の方は何らかのフロントエンドのようで、サーバーの実体は「AVelLink-server.exe」になる。サービスには勿論こちらを指定する。

 さて、これで、とりあえずバックグラウンドで動作させることは成功したが、各設定項目はユーザーランドで読み込みが行われているようで、サービスとして動作させた際には一切の設定ファイルを読み込んでくれない。
 そうなると当然、デフォルトの設定が使われてしまうので、公開するデータフォルダや、プレイリスト読み込みの設定等が一切行えないことになる。

 これではさすがに困るんで、調べてみたところ、ここらへんのデフォルト設定もレジストリで設定されていることが分かった。

 とりあえず、関係ありそうなのは、

HKEY_CURRENT_USERS\Software\Syabas Technology\AvelLink\以下
HKEY_USERS\.DEFAULT\Software\Syabas Technology\AvelLink\以下
HKEY_USERS\S-1-5-21-861567501-1580818891-1343024091-1003\Software\Syabas Technology\AvelLink\以下

 の三箇所。この中に

AudioPath=〜〜〜
PhotoPath=〜〜〜
VideoPath=〜〜〜

と言った設定があったので、ここを任意のパスに書き換えてみると無事、公開フォルダの設定が行えた。

 逆に全部を書き換える必要も無いはずなんで、改めて一個一個調べていく。
 HKEY_USERS\S-1-5-21-861567501-1580818891-1343024091-1003\Software\Syabas Technology\AvelLinkの方は、基本的にHKEY_CURRENT_USERS\Software\Syabas Technology\AvelLink\のコピー(キャッシュ)の様で、デフォルト設定に関わるのは
HKEY_USERS\.DEFAULT\Software\Syabas Technology\AvelLink\以下だけのようだ。

 実際に試してみると、確かにHKEY_USERS\.DEFAULT\Software\Syabas Technology\AvelLink\以下の設定だけで、変更が反映されるようだ。

 続いて、プレイリスト再生と楽曲(タグ)情報の表示設定。これらも、デフォルト設定のままだと行われないので、該当する設定を探さなくてはいけない。調べてみると、HKEY_CURRENT\USERS\にあって、\HKEY_USERS\.DEFAULT\に存在しないキーとして、「ScanPlaylist」、「ScanSong」ってのを発見。名前からして、恐らくこれだろうと当たりをつけ、.DEFAULT以下に同名のキー(文字列値)を作成してみたところ、ばっちり(^^)。M3Uプレイリストの展開も、タグ情報の表示にも成功した。

 まとめると、

HKEY_USERS\.DEFAULT\Software\Syabas Technology\AvelLink\AudioPath=<任意の音楽フォルダ>
HKEY_USERS\.DEFAULT\Software\Syabas Technology\AvelLink\PhotoPath=<任意の写真フォルダ>
HKEY_USERS\.DEFAULT\Software\Syabas Technology\AvelLink\VideoPath=<任意の動画フォルダ>

 上記、3項目にて任意の公開フォルダを設定する。

 また、必要に応じて、下記のレジストリを新規作成(文字列値)する。

HKEY_USERS\.DEFAULT\Software\Syabas Technology\AvelLink\ScanPlaylist=true
HKEY_USERS\.DEFAULT\Software\Syabas Technology\AvelLink\ScanSong=true

 レジストリの設定項目があらかた解かったところで、念の為、一度AVeL Link Serverを完全に削除。レジストリもクリーンな状態に戻し、設定を再現してみる。

 改めて、再インストールして分かったことは、上記の.DEFAULTのレジストリはインストール時には作成されない。
 また、HKEY_CURRENT\USERS\以下にあるVideoPath等の項目もインストール時点では作成されず、フロントエンドでの設定変更後、適宜作成されることが分かった。
 ってことで、レジストリの変更手順としては、まずサービスとして登録後、作成されたレジストリに対して、変更を行うと言う手順になる。

 また、これ以外にもサーバ起動に必要な設定の一部はインストール時には行われる訳ではないようで、初回起動時に色々と設定されるようだ。そのため、サービスとして設定するにあたっても、一旦通常の手順でAVeL Serverを起動し、クライアント側からの接続を確認した上で、改めてサービスとして登録を行う方が良いようだ。

 また、起動後にサービスの停止・再起動等を行う際は、管理ツール-サービスで、サービスの停止を選んでも正常に結果が反映されない。これは、バックグラウンドでAVeL Link Serverの実プログラムが動作し続けているためなので、タスクマネージャから、「AvelLink.exe」、「AVelLink-server.exe」を直接停止させた後、改めてサービスの起動を行う必要がある。


sexeを用いた複数のサービスプログラムの登録

 sexeでのサービスプログラム登録に関しては、登録したアプリケーションの実体がサービスとして登録されるのではなく、あくまでもsexeがサービスプログラムとして登録された後、実際のアプリケーションを呼び出す、いわばフロントエンドの格好になっている。
 そのため、基本的にsexe.exe一つに対して、一つのサービスが割り当たる格好となり、一つのsexeで複数のサービスプログラムを動作させることは出来ない。
 また、sexeの動作自体も同名のiniファイルを作成するため、単純なリネームコピーでは複数動作させることは出来ない。

 ただし、サービスプログラムはパス名も含めて登録されるため、別フォルダに置いた同名のプログラムを別のサービスとして登録することは可能である。

 そのため、sexeで複数個のサービスを登録する場合は、別名で複数のフォルダを用意し、動作させたいサービスの数だけsexe.exeを用意してやることで、複数のサービスを動作させることが出来るようになる。

例>
C:\Program Files\sexe1\sexe.exe <- PC-P1LAN起動サーバを登録
C:\Program Files\sexe2\sexe.exe <- AVeL LinkServerを登録