Windowsコード集 上のページ

#0001 二重起動の防止

2個以上のアプリケーションを起動させる事を禁止する方法です。
その最も簡単な方法は、FindWindow関数を使ってやります。 通常ウィンドゥを生成するときにはウィンドゥクラスとウィンドゥタイトルを決めてやりますが、その文字列を使ってウィンドゥを検索してやる事で、 現在起動中のアプリケーションに今から生成するウィンドゥと同じ物があるかどうかをチェックさせてやる訳です。

#include "windows.h"
#include "windowsx.h"

static CHAR WindowClassName[] = "application name";
static CHAR WindowTitle[] = "window title";

int WINAPI WinMain(HINSTANCE inst,HINSTANCE prev,LPSTR command,int show)
{
    // 二重起動の防止
    if(FindWindow(WindowClassName,WindowTitle) != NULL)return 0;

    // ウィンドゥ生成
    WNDCLASS wc;
      :
    HWND hwnd = CreateWindow(GetModuleHandle(NULL),
        WindowClassName,WindowTitle,
        ,…………);
      :
      :

    return 0;
}


上のページ