OSDN Ticket Archive


Ticket #32364

二重起動抑止モードの追加

登録: 2013-10-30 00:41 最終更新: 2013-12-08 20:14

報告者:
yknk
担当者:
yknk
チケットの種類:
機能リクエスト
状況:
完了
コンポーネント:
MIDITrail Ver.1.2.x for Windows
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

アプリの二重起動を抑止するモードを追加する。

二重起動が抑止されている場合、後続プロセスが起動された場合は、 すぐに後続プロセスを終了するとともに、先行プロセスのウィンドウをフォアグラウンド表示する。 また、後続プロセスに対して、MIDIファイルのパスが指定されていた場合は、 先行プロセスでMIDIファイルを開く。 これにより、ユーザがMIDIファイルをMIDITrailに関連付けしている場合、 ファイルをダブルクリックしたときに、常に一つのプロセスでファイルを開くことができる。

ユーザ要望対応 http://sourceforge.jp/review/115279

チケットの履歴

2013-10-30 00:41 更新者: yknk
  • 新しいチケット "二重起動抑止モードの追加" が作成されました
2013-11-11 00:18 更新者: yknk
コメント

仕様

プレーヤー設定ファイル(conf/Player.ini)の追加項目は次の通り。

[PlayerControl]
AllowMultipleInstance=0
AllowMultipleInstance

  • 0 二重起動を許さない(デフォルト)
  • 1 二重起動を許す
2013-11-11 00:18 更新者: yknk
コメント

対策

二重起動を許さない設定の場合

  • アプリの二重起動チェックはミューテクスで実現する。
  • アプリ起動時に先行プロセスがすでに存在する場合は、後続プロセスをすぐに終了し、先行プロセスのウィンドウをフォアグラウンド表示する。
  • 後続プロセスに対して、MIDIファイルのパスが指定されていた場合は、先行プロセスのメールスロットにファイルパスを送信する。
  • 先行プロセスは、起動時にメールスロットを作成しておき、後続プロセスからファイルパスを受け取ったとき、対応するファイルを開く。

二重起動を許す設定の場合

二重起動チェックは行わない。従来通りの動作とする。

2013-11-11 00:19 更新者: yknk
コメント

対策詳細

MIDITrailApp

  • メンバにミューテクスハンドル m_hAppMutex を追加する。
  • メンバにメールスロットハンドル m_hMailSlot を追加する。
  • メンバにアプリ終了フラグ m_isExitApp を追加する。
  • メンバに二重起動許可フラグ m_AllowMultipleInstance を追加する。

MIDITrailApp::Initialize

  • 二重起動チェック処理と、先行プロセスへのファイルパス送信処理の呼び出しを追加する。
  • メールスロット作成処理の呼び出しを追加する。

MIDITrailApp::_WndProcImpl

ファイルパスポスト通知受信時の処理を追加する。

MIDITrailApp::_LoadPlayerConf

二重起動抑止に関する設定の読み込み処理を追加する。

  • セクション PlayerControl
  • キー AllowMultipleInstance

MIDITrailApp::_CheckMultipleInstance

二重起動チェック処理メソッドを追加する。

MIDITrailApp::_CreateMailSlot

メールスロット作成処理を追加する。

MIDITrailApp::_PostFilePathToFirstMIDITrail

先行プロセスへのファイルパス送信処理メソッドを追加する。

MIDITrailApp::_OnFilePathPosted

後続プロセスからのファイルパスポスト通知受信処理メソッドを追加する。

2013-11-11 00:19 更新者: yknk
  • 解決法なし から 修正済み に更新されました
2013-11-19 01:14 更新者: yknk
コメント

対策詳細(修正)

設定ファイルのスペルミスを変更。AllowMultipleInstance → AllowMultipleInstances(末尾にsを追加)

これにあわせて、メンバ変数とメソッド名も変更する。

2013-12-05 00:44 更新者: yknk
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2013-12-05 00:44 に更新されました
2013-12-08 20:14 更新者: yknk
  • マイルストーンVersion 1.2.1 for Windows (完了済み) から (未割り当て) に更新されました
コメント

Mac版対応

Mac版は従来から二重起動は抑止されているため、対応不要。 MIDITrail動作中にアプリアイコンにファイルドロップされた場合も、 動作中のMIDITrailでファイルを開くことが出来る。

添付ファイルリスト

添付ファイルはありません