ホームに戻る 初歩のVC++Programming Tipsに戻る

初歩のVC++Programming Tips Win32SDK篇

プログラムの2重起動を防止するには


次のようにします

1.ウインドウを検索

FindWindow関数でウインドウを検索します。

2.発見したらウインドウをアクティブにしてフォーカスを移す

このまま終了したのではあまりにも不親切なので、発見したウインドウにフォーカスを移します。このとき「2重起動できません」というメッセージボックスを表示してもいいかもしれません。
ShowWindow関数でウインドウをアクティブにしてSetForegroundWindow関数でフォーカスを移します。
そしてアプリケーションを終了します。


次に実際のコードを示します。

    //二重起動禁止
    if((hInst=FindWindow(szClassName,szAppName)) != NULL)
    {
        ShowWindow(hInst,SW_RESTORE);  //ウインドウをアクティブにする
        SetForegroundWindow(hInst);    //ウインドウにフォーカスを移す
        return FALSE;                  //アプリケーションを終了
    }

また、このコードはWinMain関数中の一番最初に実行するようにします。


copyright (c) 1998-2000 by T-Matsuo
ホームに戻る 初歩のVC++Programming Tipsに戻る