二重起動防止のサンプル(C言語)

キーワード:

CreateMutex, GetLastError

コード:

/* 既にアプリケーションが起動しているかどうかチェックする
 * 呼び出し元では、WinMainの初めにこの関数を1度だけ呼び出すようにする
 * 戻り値:TRUE...すでにアプリケーションが起動しているかどうかを表す真偽値
 */
BOOL CheckAppInstance()
{
	HANDLE hMutex;
	DWORD error_no;
	BOOL bAppInstance = FALSE;
	
	hMutex = CreateMutex(NULL, TRUE, "Mutex object for sample code"); /* ミューテックスの作成 */

	error_no = GetLastError(); /* エラー番号の取得 */
	
	/* 判定 */
	if(error_no == 0)
		bAppInstance = FALSE;
	else if(error_no == ERROR_ALREADY_EXISTS)
		bAppInstance = TRUE;
	
	return(bAppInstance);
}

(original text:1998/05/11 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。