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

わんくま同盟

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

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

■96869 / 2階層)  単一インスタンスのアプリケーションを作成するを一時的に無効化
□投稿者/ とっちゃん (716回)-(2021/02/20(Sat) 17:40:38)
No96867 (コング さん) に返信

> [単一インスタンスのアプリケーションを作成する]にチェックが入っていない状態だとうまくいくのですが
> チェックが入った状態だと、複数のプログラムを同時に起動できないため、
> 新規に起動することができません。
>
> そのため、一時的に
> 単一インスタンスのアプリケーションを作成するを無効化
> したいのですがどのようなコードでこのようなことが実現できますでしょうか?
>
>
VBのアプリケーションフレームワークの機能を利用した、単一インスタンス実行の抑制は
アプリケーションのビルド時に決めるため一時的な抑制などはできません。

2つ目以降の起動は、アプリケーションクラス(通常見えない<というより明示的に作らない)の
StartupNextInstance が呼ばれるので、そこで判断すればできる様です(知らなかった)。

でも、アプリが昇格実行の2回目なのか?なんて判断するのはかなり面倒なので
個人的には、昇格処理専用プログラムを用意して、昇格実行する必要のある処理は
全てその専用プログラムを通じて行う形が良いと思います。

専用プログラムであれば、アプリ自身が昇格実行の設定で作れるため起動時にOS側で問答無用で昇格してくれます。
そのため、昇格しているのか?なんてことは考えずに処理することができます。

呼び出す側も自分が昇格しているかどうかなんてことは考えずに単純に Process.Start を使って
実行するだけで済みます(パラメータでアプリからの要求で実行しているかどうかを判定する必要はある)。

と書いていたら、いつの間にか返答が...w

編集キー/

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

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

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