スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【コード】アプリの二重起動を防止する

コードの項目が少ないのもアレかな~と思ったので
暇潰しに取り上げてみました。

果たして必要なのかどうか解らない所ですが、
アプリを起動している最中に、もう一つアプリを起動させない方法を記事にしました。
多重起動の防止というやつです。

使用する関数は、FindWindow(~)です。
子ウィンドウを探す必要がある場合はFindWindowEx(~)を使用します。

関数を使うには <Windows.h> をインクルードします。

HWND FindWindow(
LPCTSTR lpClassName, // クラス名
LPCTSTR lpWindowName // ウィンドウ名
);


このように定義されており、
第一引数、第二引数には、CreateWindow または、CreateWindowEx で
ウインドウを作成した時に指定した名前を渡してやります。
大文字や小文字が区別されない所には注意です!

FindWindow をアプリ開始時に呼んであげれば、多重起動を防止してくれます。
二つ以上は起動しないで欲しい場合なんかには有効かもしれません。
そう言う訳で、作成した関数がこちら。

//*******************************************
// 二重起動しているかどうかをチェックする
// 引数 : なし
// 戻り値 : TRUE:している FALSE:していない
//*******************************************

bool CheckFindWindow()
{
if( FindWindow(クラス名, ウインドウ名) != NULL )
{
MessageBox(hWnd, "既に起動しています!", "二重起動を検知", MB_OK);
return TRUE;
}
return FALSE;
}


戻り値が TRUE ならアプリケーションを終了してあげれば二重起動はされずに済みます。
本来なら戻り値のチェックもした方がいいですが、面倒なので省略しました。

詳しく見たい方のために、MSDNライブラリのページも貼っておきます。
http://msdn.microsoft.com/ja-jp/library/cc364634.aspx

また暇があれば何か、しょうもないコードでも記事に取り上げて行きます。

この記事へのコメント

トラックバック

URL :

検索フォーム
プロフィール

DVDM

Author:DVDM
自作ゲームの開発過程ブログ。
赤髪愛なら誰にも負けない。

 
Pixiv バナー


ブロとも申請フォーム
最新記事
カテゴリ
最新コメント
最新トラックバック
RSSリンクの表示
リンク
ブロとも一覧
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。