GlobalAddAtomによりexeの多重起動を防止するサンプルコード


グローバルアトムテーブルに格納し、識別する一意の値( アトム)を獲得するさんぷるです。

プログラムに二重起動防止などに活用してください。

プログラムで「GlobalAddAtom」で任意の文字列を登録しておきます。もし同じプログラムが同じatomを登録しようとすると、atomが既に登録されているのでエラーとなりプログラムの実行が失敗します。これにより多重起動の防止となります。

(*)コマンドプロンプトからプログラムを実行する場合は、start <exe名> で実行してください。そうすればダイアログボックスを表示したまま、制御がすぐに戻ってきます。そこで同じプログラムをもう一つ起動すると「ATOMが見つかりました。おそらくこのプログラムは既に起動されています。」のメッセージが表示されることが分かります。

スポンサーリンク

Visual C++ 向けサンプルコード

//GlobalFindAtom のサンプルコード
#include <windows.h>

int main(HINSTANCE hinst, HINSTANCE hinstPrev, LPSTR lpszCmdLine, int nCmdShow)
{
	 TCHAR szAtomName[] = "MyAtom";
	 ATOM  atom;

	 if (GlobalFindAtom(szAtomName) != 0) 
{ MessageBox(NULL, TEXT("ATOMが見つかりました。おそらくこのプログラムは既に起動されています。"), NULL,MB_ICONWARNING); return 0; } atom = GlobalAddAtom(szAtomName);
MessageBox(NULL, TEXT("プログラムを終了するには[OK]を押してください。"), "OK", MB_OK);
GlobalDeleteAtom(atom); return 0; }

スポンサーリンク



[Visual C++ サンプルコード | 即戦力ソース集に戻る]

本サンプルコードではエラー処理を省略している場合があります。実践で使用する場合はエラー処理が必要となる場合があります。