Windowsでプロセスの二重起動の防止にはミューテックスが使われます。 サンプルなどをみると簡単なのですが、意外とハマる罠があるので注意しましょう。 ちなみに以下のサンプルコードはVC2008で試しています。 罠1:OpenMutexしてはいけない #include <windows.h> #include <tchar.h> #include <stdio.h> #include <locale.h> //_tsetlocale用 #include <conio.h> //getch用 int _tmain(int argc, _TCHAR* argv[]) { _tsetlocale( LC_ALL, _T("Japanese") ); //_tprintfで日本語を表示させるために必要 HANDLE hMutex = ::OpenMutex(MUTEX_ALL_ACCESS, FA