C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
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
└
Re[7]: 単一インスタンスのアプリケーションを作成するを一時..
/ コング
(21/02/25(Thu) 21:08)
#96902
解決済み
上記ツリーを一括表示
/
上記ツリーをトピック表示
上記の記事へ返信
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
URL は自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
名前
(*必須)
E-Mail (任意)
Web サイト (任意)
投稿モード
通常モード
図表モード (ソースコードを貼る場合はこちらを使用)
本文
(質問の場合は、開発環境・使用言語のバージョンなどを最初に書いてください)
■No96869 (とっちゃん さん) に返信 > ■No96867 (コング さん) に返信 > >>[単一インスタンスのアプリケーションを作成する]にチェックが入っていない状態だとうまくいくのですが >>チェックが入った状態だと、複数のプログラムを同時に起動できないため、 >>新規に起動することができません。 >> >>そのため、一時的に >>単一インスタンスのアプリケーションを作成するを無効化 >>したいのですがどのようなコードでこのようなことが実現できますでしょうか? >> >> > VBのアプリケーションフレームワークの機能を利用した、単一インスタンス実行の抑制は > アプリケーションのビルド時に決めるため一時的な抑制などはできません。 > > 2つ目以降の起動は、アプリケーションクラス(通常見えない<というより明示的に作らない)の > StartupNextInstance が呼ばれるので、そこで判断すればできる様です(知らなかった)。 > > でも、アプリが昇格実行の2回目なのか?なんて判断するのはかなり面倒なので > 個人的には、昇格処理専用プログラムを用意して、昇格実行する必要のある処理は > 全てその専用プログラムを通じて行う形が良いと思います。 > > 専用プログラムであれば、アプリ自身が昇格実行の設定で作れるため起動時にOS側で問答無用で昇格してくれます。 > そのため、昇格しているのか?なんてことは考えずに処理することができます。 > > 呼び出す側も自分が昇格しているかどうかなんてことは考えずに単純に Process.Start を使って > 実行するだけで済みます(パラメータでアプリからの要求で実行しているかどうかを判定する必要はある)。 > > と書いていたら、いつの間にか返答が...w >
編集キー
自分の投稿を編集する時に必要です
(半角8文字以内)
解決済み
/
解決したらチェックしておきましょう。
プレビュー/
管理者用
-
Child Tree
-