C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■96875 / 4階層)  単一インスタンスのアプリケーションを作成するを一時的に無効化
□投稿者/ とっちゃん (717回)-(2021/02/21(Sun) 13:39:07)
No96874 (コング さん) に返信
> ありがとうございます。
>
> これって
> [単一インスタンスのアプリケーションを作成する]
> を無効化した上で、
>
「これ」がどれを指してるのかいまいちよくわからないですが
「二重起動防止策を自分で組み込む」を指しているのであれば、
もっと早い段階(具体的には、Main関数を使うようにしてそこで)
行う必要があります。

VBでのMain関数の作り方については、ここの掲示板でも過去に何度も出ていますし
あちこちに記事があるので、詳しいことは丸っと省略しますが以下のような感じでメイン関数を書きます

> Sub Main()
> ' ここで、二重起動しているかを確認
> ' 2回目以降の起動であれば、すぐに「return」で終了する(Exitではない)
> ' 問題なければ、アプリケーションの起動シーケンス(Appliation.Run())に行く。
> End Sub


ちなみに、Load イベントは、今ウィンドウを作っていますよ(この場合はForm0かな?)というイベントです。
なので、ここでやっぱやめた!とする場合は、
Exit() ではなく Close()を呼び出し、その直後でReturnします。


おまけ…

> Dim mutexName As String = "MyApplicationName"
> 'Mutex名の先頭に「Global\」を付けて、Global Mutexにする
> mutexName = "Global\" & mutexName

アプリ起動中に同一マシン内でほかのユーザーも同時に利用する場面があるのでしょうか?
その場合は、Globalを付けて、マシン全体で一意な識別子とする必要がありますが
そうではない(ユーザーが異なるなら同時に動いてもよい、すなわちほかのマシンであれば同時に動いてもよいと同じ)なら
わざわざつける必要はありません(後続のいろいろな権限の部分も、特に権限設定は必要ない)。

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[3]: 単一インスタンスのアプリケーションを作成するを一時.. /コング →Re[5]: 単一インスタンスのアプリケーションを作成するを一時.. /コング
 
上記関連ツリー

単一インスタンスのアプリケーションを作成するを一時的に無効化 / コング (21/02/20(Sat) 13:35) #96867
Re[1]: 単一インスタンスのアプリケーションを作成するを一時.. / 魔界の仮面弁士 (21/02/20(Sat) 16:58) #96868
  └ Re[2]: 単一インスタンスのアプリケーションを作成するを一時.. / とっちゃん (21/02/20(Sat) 17:40) #96869
    └ Re[3]: 単一インスタンスのアプリケーションを作成するを一時.. / コング (21/02/21(Sun) 11:23) #96874
      └ 単一インスタンスのアプリケーションを作成するを一時的に無効化 / とっちゃん (21/02/21(Sun) 13:39) #96875 ←Now
        └ Re[5]: 単一インスタンスのアプリケーションを作成するを一時.. / コング (21/02/22(Mon) 12:17) #96883
          └ Re[6]: 単一インスタンスのアプリケーションを作成するを一時.. / とっちゃん (21/02/22(Mon) 15:00) #96885
            └ Re[7]: 単一インスタンスのアプリケーションを作成するを一時.. / コング (21/02/25(Thu) 21:08) #96902 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信