ocojyo登録ツール
多重起動のための設定を作成し登録するためのツールです。
ocojyo右上の「新規登録」ボタンから起動できます。
登録までの流れ
- 対象アプリケーションの選択(STEP01)
- APIの動作の変更・動作確認(SETP02)
- 設定の登録(SETP03)
作業は主にSETP02の多重起動が可能となるAPIの組み合わせ試験になります。
多重起動抑止の仕組み
登録ツールを使用するには多重起動の仕組みを理解しておいた方が良いため、この項で解説を行います。
複数起動しないアプリケーションは、アプリケーション自身でその制御を行っています。
二つ目に起動したアプリケーションは自分がすでに起動しているかチェックし、もし起動していたら終了するようになっています。
多重起動抑止の仕組みはアプリケーション毎に異なりますが、最も一般的な方法は名前の付いたフラグによる制御になります。
多重起動抑止の流れ
アプリ1:1つ目に起動したアプリケーション
アプリ2:2つ目に起動したアプリケーション
| 動作順序 |
アプリ1 |
アプリ2 |
フラグ |
解説 |
| 1 |
起動 |
|
|
|
| 2 |
"hoge"フラグ作成(成功) |
|
"hoge"フラグ |
名前"hoge"でフラグを作成 |
| 3 |
|
起動 |
|
|
| 4 |
|
"hoge"フラグ作成(失敗) |
|
名前"hoge"でフラグを作成しようとするが、既にあるため失敗 |
| 5 |
|
終了 |
|
|
最初に起動したアプリ1は起動直後に"hoge"という名前の付いたフラグを作成します。
後から起動したアプリ2も起動直後に"hoge"という名前でフラグを作成しようとしますが、すでに存在するため失敗し、自ら終了します。
多重起動の抑止は基本的にこの流れですが、アプリケーションによってはフラグを作成する前にフラグがあるか確認する場合もあります。
フラグの種類
フラグには以下のようなものがありますが、名前が違うだけで動作は変わりません。
ocojyoによる多重起動抑止の無効化
ocojyoで以下のような事を行っています。
- フラグの名前を書き換える(CreateMutexを無効にする)
- フラグを見せない(OpenMutexを失敗にする)
多重起動の抑止に使用しているフラグに対し制御を指定することで、多重起動抑止の無効化が行えます。
設定作成
多重起動の設定を行う作業の流れになります。
対象アプリケーションの指定
多重起動したいアプリケーションを登録ツールの左上の枠内にドロップするか、
その下の起動履歴に表示されたアイコンをダブルクリックすることで追加されます。
ログビューアーの履歴をダブルクリックしても追加できます。
API動作の変更
アプリケーションを指定した後、アプリケーションを起動すると右下のリストに呼び出しているAPIが追加されます。
多重起動のフラグで用いているAPIを特定する必要がありますが、怪しいと思われるものを変えて試していくしかありません。
ログビューアーを見ながら何度もトライしましょう。
CreateMutex、CreateSemaphore、CreateEventの動作を"無効"に設定する。
OpenMutex、OpenSemaphore、OpenEventの動作を"失敗"に設定する。
設定の登録
多重起動する設定が行えたら、右側の登録項目を入力し登録を行います。
ocojyoからアプリケーションタイトル、検索タグで検索しマイリストに追加すればocojyoを起動しなくても多重起動が行えるようになります。
練習
多重起動の設定に慣れるのにWindows Media Playerを多重起動させてみると良いでしょう。
- Windows Media Playerの多重起動設定
"Local\Microsoft_WMP_70_CheckForOtherInstanceMutex"の名前の付いたCreateMutexを無効にする。
最終更新:2013年01月23日 18:30