問題タブ [single-instance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
392 参照

c# - SingleInstanceApplication でのスプラッシュ ラベルの更新: WindowsFormsApplicationBase

アプリケーションの起動時にスプラッシュ シーンのラベルを更新して、何が起こっているかをユーザーに知らせる最善の方法は何ですか? 問題は、「this.SplashScreen」にアクセスできない静的なメイン メソッド内で更新を行う必要がある一方で、オーバーライド メソッドでスプラッシュ スクリーンが作成されることです。

0 投票する
4 に答える
3367 参照

c# - アプリケーションの2つのインスタンス間の単純な通信

いくつかのオプションのコマンドライン引数を取ることができるWPFアプリケーションがあります。

このアプリケーションもシングルインスタンスアプリケーションです(インスタンスがすでに開いている場合は、ミューテックスを使用してインスタンスを閉じます)。

しかし、私が望んでいるのは、何かがいくつかのcmd行引数を使用してアプリケーションを開こうとした場合、アプリケーションはそれらを使用して想定されていることを実行することです(私のアプリケーションでは、cmd行に基づいて異なるダイアログを開きます)。

これを達成する最も簡単な方法は何ですか?

psedoコードでここに私が探しているものがあります

0 投票する
1 に答える
1221 参照

drupal - サブディレクトリを使用したDrupalマルチサイトセットアップ

単一のコードベースでマルチサイトをセットアップしています。/home/drupal/sites/mysite.comのmysite.comというサブフォルダを使用して自分のサイトディレクトリを次のように設定することは可能ですか?

/home/drupal/sites/cluster1/othersite1.comのothersite1.com

/home/drupal/sites/cluster1/othersite2.comのothersite2.com

/home/drupal/sites/cluster2/othersite3.comのothersite3.com

/home/drupal/sites/cluster2/othersite4.comのothersite4.com

私はすべてのサイトを整理する方法を見つけようとしています。

ありがとう

0 投票する
3 に答える
3316 参照

vb6 - VB6: すべてのユーザー セッションにわたる単一インスタンス アプリケーション

Windows PC 上のすべてのユーザー セッションで単一インスタンス アプリにする必要があるアプリケーションがあります。これまでの私の研究は、これを達成するためにミューテックスを使用することに集中していましたが、実際に問題があるかどうかわからない問題が発生しています。これは本当にベストプラクティスの質問だと思います.

まず、コードは次のとおりです。

さて、この記事に基づいて、上記のように NULL ポインターを CreateMutex 関数に渡すことで、現在ログインしているユーザーに関連付けられているセキュリティ記述子を基本的に割り当てていることを理解していると思います。

それが私が思うことを意味する場合 (ここでさらにガイダンスが必要な場合があります)、ログインする他のユーザーは、元のユーザーのセッションで作成されたミューテックスを「見る」ことができず、作成することもできません。同じ名前のミューテックス。

現在、経験的証拠がこれを裏付けているようです。メッセージ ボックスを使用して受け取った "LastDLLError" をポップしました。別のユーザーが (別のユーザー アカウントで既に実行されているときに) アプリケーションを起動しようとすると、ERROR_ACCESS_DENIED コードを受け取りました。ERROR_ALREADY_EXISTS コードと一緒にこれに対してテストし、どちらかまたは両方で終了しても問題ありません。しかし、これは一種のハックのように感じられ、誰かが代替案を提案できるかどうか疑問に思っています. 「正しい」ことは、適切なポインターを CreateMutex 関数に渡して、すべてのユーザーが既存のミューテックス (mutices?) を表示するための適切なアクセス許可を持つようにすることですが、現在ログインしているユーザーが管理者であること (これは受け入れられません)。どんな支援/指導も大歓迎です。

0 投票する
0 に答える
937 参照

sharepoint - 前のインスタンスがまだ実行されている間は、長時間実行されている SharePoint タイマー ジョブを開始できないようにする

SharePoint タイマー ジョブが 1 回だけ実行されるようにするためのベスト プラクティスは何ですか?

SPJobLockType.Job を使用すると、ジョブが 1 台のマシンでのみ開始されるようになります。しかし、以前のインスタンスがまだ実行されている間に新しいインスタンスが開始されないようにするにはどうすればよいでしょうか? タイマー ジョブの手動開始をブロックするために、以前のインスタンスがまだ実行されているかどうかを確認するにはどうすればよいですか?

考えられる解決策は 2 つあります。

1) 一部の API 機能を介して以前のインスタンスがまだ実行されているかどうかをテストします。そのような API 機能については知りません。

2) セマフォを使用します。しかし、電源障害が発生した場合にセマフォを確実にリセットするにはどうすればよいでしょうか...?

0 投票する
1 に答える
2363 参照

visual-studio-2010 - ATL exe サーバーを 1 つのプロセス (インスタンス) のみに制限する

C++ (Visual Studio 2010、プロキシ スタッド dll をマージ) で記述された ATL exe サーバーがあります。実行可能ファイルは、Windows 7 x86 & x64 用にコンパイルされています。両方のアーキテクチャで次のことが起こります。

ATL exe サーバーは「サーバー プロセス」として機能する必要があります。つまり、マシンごとに 1 つのプロセス (MyATLServer.exe、1 つだけ!) が存在し、多くのクライアント (単純にしましょう: 同じマシン上) が COM オブジェクトを消費します。それ。サーバーはアプリケーションの状態を (メモリに) 保存し、サーバーの公開された COM オブジェクトを使用して、すべてのクライアントがこの状態を "共有" する必要があります。

exe サーバーは通常、ホストされているオブジェクトの 1 つを作成するために COM 呼び出しによって呼び出されるため、システムの起動時に起動します。呼び出しは、spoolsv.exe プロセス (印刷スプーラー サービス) 内から発生します。これにより、サーバープロセスが「SYSTEM」ユーザーの下で実行されます(spoolsv.exeが「SYSTEM」で実行されるためだと思います)。

クライアントの 1 つが ATL サーバーから COM オブジェクトを作成すると、別のプロセス (再び MyATLServer.exe) がインスタンス化され (Windows にログインしているユーザーの下で実行されます)、アプリケーションの状態を「元の」プロセスと共有できません (これは「SYSTEM」の下で実行されています)。2 番目のクライアントは、ログインしたユーザーによってインスタンス化されたクライアント (「2 番目のクライアント」) に接続します。

Web 上の無数のフォーラムを検索した後、次の結論に達しました。

1) 私の ATL サーバーは、ATL::CAtlExeModuleT<> から継承する既定の (VS2010 によって自動生成された) ATL-Module を使用します。ATL ヘッダーを掘り下げると、このモジュールがこの種の使用に適したフラグ (dwClsContext = CLSCTX_LOCAL_SERVER、フラグ = REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED) を使用して AtlComModuleRegisterClassObjects を呼び出していることがわかります。したがって、これは除外されます。

2) start -> run -> dcomcnfg -> DCOM Config -> MyATLServer -> Properties の使用 [ID] タブで [このユーザー] オプションを設定しました (ローカル管理者ユーザー)。[場所] タブで、[このコンピューターでアプリケーションを実行する] オプションが選択されておらず、グレー表示されています。これにより、もう一度検索して、ここにたどり着きました:http://social.technet.microsoft.com/Forums/en-US/w7itprosecurity/thread/4f63ee11-e472-40f9-85db-a6b235d7579c。このリンクは、dcomcnfg ユーティリティの x64 バージョンにはバグがあり、x64 Windows では 32 ビット バージョンを使用する必要があることを説明しています (start->run->'mmc comexp.msc /32')。2 つのシステム (それぞれ 1 つ) で確認したところ、[このコンピューターでアプリケーションを実行する] オプションがグレー表示され、両方で選択されていないことがわかりました。

この時点から、私は完全に道に迷っています (そして、フラストレーションを抑えようとしています... :-))。私は正しい道を進んでいますか?誰かが前にこれをしましたか?

または元の意図-ATL exeサーバーを「単一処理」にするにはどうすればよいですか?

ありがとう!

オムリ

0 投票する
6 に答える
14325 参照

android - アクティビティの起動モードが singleInstance の場合、onActivityResult が起動しない

基本的に私の主なアクティビティであるアクティビティがあり、その起動モードは単一インスタンスです。しかし、singleInstance のため、onActivityResult()コールバックは発生しません。また、マニフェスト ファイルの起動モードを他のモードに変更すると、正常に動作します。

このコールバックが機能しない理由を説明できますか?

0 投票する
14 に答える
41017 参照

c++ - C または C++ で単一インスタンス アプリケーションを作成する方法

単一インスタンス アプリケーションを作成して、一度に 1 つのプロセスしか実行できないようにするための提案は何ですか? ファイルロック、ミューテックス、または何?

0 投票する
1 に答える
970 参照

autofac - Autofac: マルチテナント依存関係を持つ単一インスタンス オブジェクト

2 つのクラス A と B があり、B は A に依存します (コンストラクターが注入されます)。B はベース コンテナーに SingleInstance として登録され、ビルドされます。A は MultiTenantContainer に SingleInstance として登録され、tenantId が異なります。

質問 1: 意志

B もテナント ID で変更する必要があることを認識していますか?

質問 2: 同じですが、A はマルチテナント コンテナー内で有効期間スコープとして登録されており、B は依存しています。

更新:閉鎖!

これは、私の初心者がセマンティクスを理解していないため、「私が本当に欲しかったのは...」のケースでした。具体的には、存在しなかったテナントの有効期間スコープ内のすべての解像度で構築/共有されたインスタンスが必要でした。いくつかのガイダンスを得て、issue #318 にパッチを提出し、変更セット 752 でトランクにプルされました。準備完了です! 上記の質問は次のようになります。

2 つのクラス A と B があり、B は A に依存します (コンストラクターが注入されます)。B はベース コンテナーにInstancePerTenantとして登録され、ビルドされます。A は MultiTenantContainer にInstancePerTenantとして登録され、tenantIdによって異なります...

両方の質問に対する答えは「はい」です。

Travis と Nick の助けとこの素晴らしいツールの維持に感謝します。

0 投票する
1 に答える
484 参照

wix - WiX msiのインスタンスを1つだけ同時に実行することは可能ですか?

WiXを使用して実装されたmsiインストーラーを備えた.Net製品があります。これで、インストーラーの複数のインスタンスを同時に実行できるようになりました。インストーラーの複数のインスタンスの実行を同時に制限することは可能かどうか疑問に思っていますか?

ありがとう。