DIME : C r e a t e M u t e x / help


DIME : CreateMutex / help


くりえいとみゅーてっくす

C r e a t e M u t e x

Conditon【 パラメータ 1 , 2 】

用途/多重起動防止

機能について解説

Mutual Exclusion ( 排他制御 ) の略が Mutex(ミューテックス)です。

Windows OS が実装している排他制御を利用してアプリケーションの二重・多重起動を防止します。先に所有権を取ったアプリケーションは、プロセス終了時に自動的に所有権を放棄しハンドルをクローズします。実際に多重起動を見つけた場合には後から起動されたアプリケーションを半自動で終了させることなどができます。

パラメータ 1 でミューテックスオブジェクトに付ける名前を入力します。名前の長さは API によって MAX_PATH = 260 文字までと制限されています。名前にはバックスラッシュ(\)以外の任意の文字が使用できます。アルファベットの大文字と小文字も区別され日本語も使えますが、怖いので日本語は使わないで下さい。

パラメータ 2 は標準エラーダイアログの表示用オプションです。多重起動・内部エラーなどをユーザに報告するためのダイアログ表示動作を選択できます。数字の「0」か「1」で指定、「0」の場合は内部的な警告があってもダイアログを出さずに続行します。「1」を指定したときは、多重起動判定時などダイアログを出してユーザに警告します。多重起動判定をした際の動作を更に詳細にカスタマイズしたい場合、パラメータ 2 は「0」を指定して、以下のサンプルを参考にイベントを独自に編集してください。

動作サンプル # 1:Mutex

動作サンプル # 2:Mutex Custom Action

参考:CreateMutex 関数 ( MSDN )

注意事項

  1. アプリケーションが終了したように見えてまだプロセスに残っている場合があります
  2. タスクマネージャから見て前回閉じたはずのプロセスがまだ残っている場合、起動時に多重と判定されます
  3. Mutex 用の識別子は他アプリケーションと重複しやすいものを選ばないで固有の名前を付けてください
コンディション CreateMutex(
  String, INT    // 識別子の長さは256文字まで
);

END

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です