グローバルミューテックス

[VC]

そのコンピュータで唯一の資源をアクセスするための排他には"Global\\"をつけたグローバルミューテックスにする必要がある。

ミューテックスの名前としてアプリケーション固有の名前を指定する。
その際、その名前の先頭に「Global\」というプレフィックスを付加して
「グローバル・ミューテックス」にすれば、Windows XPで実装された「Fast User Switching
(参考:「新世代Windows、Windows XPを初体験(3)」)」のように
複数のユーザー環境が同時実行される場合でも、複数ユーザー間でのアプリケーションの多重起動を禁止できる。
ただし、グローバル・ミューテックスはWindows 2000以降しか対応していないので、
これを利用するアプリケーションは必ずOSバージョンを確認する必要がある。
グローバル・ミューテックスにすると、多重起動の場合にはMutexオブジェクトの生成時にApplicationException例外(System名前空間)が発生するようになるので、
その例外をキャッチして多重起動の判別を行えばよい。

ネタ元