問題タブ [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.
clickonce - 実行中の clickonce デプロイされた単一インスタンス アプリを見つけますか?
私は現在、単一インスタンスの clickonce デプロイ済みアプリで問題に直面しています。誰かがそれについて良い考えを持っているかもしれません。
私のアプリは、この exe にパラメーターを渡す Web アプリケーションによって呼び出されます。ここでの問題は、アプリケーションが既に実行されている場合、新しいインスタンスが開始され、パラメーターが実行中のインスタンスに渡され、閉じられるまで (URL を開いて更新を確認するなどして) かなり長い時間がかかることです.. .)。
新しい小さなアプリを導入せずに、実行中のインスタンスがあることを検出する方法はありますか?
目標は、2 回目、3 回目、... の呼び出しで実行中のインスタンスにパラメーターを取得するために必要な時間を短縮することです。
java - 単一インスタンスの Java アプリケーションを実装する方法は?
msn、Windows Media Player など、シングル インスタンス アプリケーションである多くのアプリケーションを目にすることがあります (アプリケーションの実行中にユーザーが実行すると、新しいアプリケーション インスタンスは作成されません)。
C# ではこれにMutex
クラスを使用しますが、Java でこれを行う方法がわかりません。
python - Linux でアプリケーションの単一インスタンスを確保する
WxPython で GUI アプリケーションを作成していますが、マシン上でアプリケーションのコピーが常に 1 つしか実行されないようにする方法がわかりません。アプリケーションの性質上、複数回実行しても意味がなく、すぐに失敗します。Win32 では、名前付きミューテックスを作成して起動時に確認するだけです。残念ながら、これを実行できる Linux の機能を私は知りません。
アプリケーションが予期せずクラッシュした場合に自動的に解放されるものを探しています。クラッシュしたために手動でロック ファイルを削除する必要があり、ユーザーに負担をかけたくありません。
asp.net - ASP.Net AJAX Web ポータルを「単一インスタンス」にするにはどうすればよいですか?
オプションで Web ポータルを「単一インスタンス」にできるかどうか尋ねられました。WinForms アプリでの同じアイデアについては、Hanselman のブログのこの投稿を参照 してください。
同じクライアント マシンに 2 つのショートカットがあるとします。
http://MyServer/MyWebPortal/Default.aspx?user=username&document=Foo http://MyServer/MyWebPortal/Default.aspx?user=username&document=Bar
最初のショートカットをクリックすると、Web ポータルが起動してログインし、ドキュメント「Foo」が表示されます。2 番目のショートカットをクリックすると、Web ポータルの実行中のインスタンスにドキュメント「バー」が表示されます。
私の現在のアプローチは次のとおりです。ページの読み込みで、最初のインスタンスとしてクライアントごとのアプリケーション変数を作成します。2 番目のインスタンスは、Application 変数を検索して、ポータルがクライアントで実行されているかどうかを確認します。そうである場合、2 番目の URL は別の Application 変数に記録され、2 番目のインスタンスは強制的に終了されます。ASP.Net AJAX タイマーを作成して、表示するドキュメントの Application 変数をポーリングしようとしました。この種の作品。2 番目の要求にすばやく応答するために、タイマー間隔を 2 秒に設定しました。これにより、ポストバックが頻繁に発生するため、ポータルの使用が煩わしくなります。
私のアプローチを使用して、2 番目のインスタンスが最初のインスタンスに通知して、ポーリングせずにアプリケーション変数をチェックする方法はありますか? この問題に対するより良い全体的なアプローチはありますか?
前もって感謝します
.net - Click Once を使用してシングル インスタンス アプリケーションを構築するにはどうすればよいですか?
単一インスタンス アプリケーションが必要ですが (この回答に従って)、クリック ワンスでデプロイする必要があります。
問題は、アプリケーションの実行中に更新を自動的に検出せず、新しいバージョンをロードしようとする試みを 1 回クリックする必要があることです。実行中の場合は、他のインスタンスをアクティブにする必要があります。通常、クリック ワンス リンクを選択すると、最初に行われるのは更新プログラムの検索です。これをインターセプトし、通常の更新プロセスを開始する前に、すでに実行中のインスタンスを確認したいと考えています。
Click Once 展開シナリオでこれがどのように可能になるかを知っている人はいますか?
vb.net - マルチスレッドのVB.NETクラスに結果を単一のフォームに表示するように強制します
Sharedクラスを使用してアプリケーションのすべての共通オブジェクトを格納するWindowsフォームアプリケーションがあります。設定クラスには、定期的に処理を実行するオブジェクトのコレクションがあります。次に、興味深いものがあります。メインフォームにアラートを送信し、更新する必要があります。
現在、オブジェクトのイベントを介してこれを行っています。各オブジェクトが作成されたら、イベントハンドラーを追加してイベントをフォームにマップします。ただし、これらのリクエストがフォームのメインコピーで常に終了するとは限らないことを示唆する問題が発生しています。たとえば、私のフォームには通知トレイアイコンがありますが、フォームがイベントをキャプチャしてバブルを表示しようとすると、バブルは表示されません。ただし、そのコードを変更してアイコンを表示し(既に表示されていますが)、バブルを表示すると、2番目のアイコンが表示され、バブルが正しく表示されます。
誰かがこれに遭遇したことがありますか?フォームの単一のインスタンスによってすべてのイベントを強制的にキャプチャする方法はありますか、それともこれを処理するまったく異なる方法がありますか?必要に応じてコードサンプルを投稿できますが、これは一般的なスレッドの問題だと思います。
詳細:現在、フォームのイベントハンドラーでMe.InvokeRequiredを使用していますが、この場合は常にFALSEが返されます。また、このフォームから表示したときに作成された2番目のトレイアイコンにはコンテキストメニューがありませんが、「実際の」アイコンにはあります-それは誰かの手がかりになりますか?
髪を抜くぞ!これはそれほど難しいことではありません!
解決策:手がかりを与えてくれたnobugzに感謝します。それにより、現在使用しているコードにたどり着きます(これは美しく機能しますが、これを行うためのより良い方法があると思わずにはいられません)。「IsPrimary」というフォームにプライベートブール変数を追加し、フォームコンストラクターに次のコードを追加しました。
この変数が設定されてコンストラクターが終了すると、イベントハンドラーに直接移動し、このように処理します(警告:探しているフォームはアプリケーションのプライマリフォームであるため、My.Application.OpenForms( 0)必要なものを取得します。スタートアップ以外のフォームの最初のインスタンスを探していた場合は、それが見つかるまで繰り返す必要があります):
まず、正しいフォームで実行されているかどうかを確認します。実行されていない場合は、正しいフォームを呼び出します。次に、スレッドが正しいかどうかを確認し、正しくない場合はUIスレッドを呼び出します。次に、イベントコードを実行します。潜在的に3回の呼び出しになるのは好きではありませんが、別の方法を考えることはできません。少し面倒ですが、うまくいくようです。誰かがそれを行うためのより良い方法を持っているなら、私はそれを聞いてみたいです!
繰り返しになりますが、すべての助けに感謝します-これは私を狂わせるつもりでした!
c# - c# WPF ローダーの単一インスタンスを維持する
WPF で「UI」をロードする Main() を含む loader.exe があります。これは、loader.exe のインスタンスが 1 つだけ必要なのですが、どうすれば実現できますか?
ユーザーが loader.exe をクリックして、既存の loader.exe が実行されていて何もしないかどうかを確認する方法はありますか。
現在私は持っています
loader.exe
と
ローダーは何をロードしているのかわからないので、ローダープロジェクトで多くのことを行うことができません...
どんなヘルプnコードも大歓迎です
前もって感謝します。
c# - .NET C# WPF アプリケーション/DLL へのデータの受け渡し
Mutex を使用して単一インスタンス アプリケーションにしようとしている .NET C# WPF アプリケーションがあります。
この .NET アプリケーションは、CreateProcessAsUser() を使用して C++ ベースの DLL によって呼び出され、環境変数を介してパラメーターが与えられます。
以降のインスタンスも同様に C++ DLL によって作成されます。
後続のインスタンスは、終了する前にアプリケーションの最初のインスタンスにパラメーターを渡す必要があります。
問題は、後続のインスタンスがデータを .NET アプリケーションの最初のインスタンスに渡すことができるように、.NET アプリケーションでどのメソッドを使用できるかということです。シンプルであるほど良い。
私はいくつかを調査しましたが、もっと簡単な方法があることを願っています。
私が研究したこと:
- 名前付きパイプ
- .NET リモート処理
- Windows Messaging (WM_COPYDATA を最初のインスタンス ウィンドウに送信)
最初のインスタンスに 4 つの文字列を渡そうとしているだけなので、上記の方法は私の問題ではやややり過ぎなので、回避しようとしています。
私が考えることができる最も簡単な方法は、.NET アプリケーションから関数をエクスポートして、.NET アプリケーションの後続のインスタンスが .NET アプリケーションの最初のインスタンスでこの関数を呼び出し、関数のパラメーターとしてデータを渡すことができるようにすることです。 . しかし、これは .NET で可能ですか? .NET EXE または DLL が関数をエクスポートできないことを読みました。
ありがとう!
vb.net - アプリケーションのインスタンスが1つ実行されていることを確認する方法
ユーザーがアプリケーションアイコンをダブルクリックしたときに、このアプリケーションの別のインスタンスがまだ実行されていないことを確認したいと思います。
My.Applicationについて読みましたが、どうしたらよいかわかりません。
c# - Mutex を使用して、同じプログラムの複数のインスタンスが安全に実行されないようにしていますか?
このコードを使用して、プログラムの 2 番目のインスタンスが同時に実行されないようにしていますが、安全ですか?
何か例外がスローされてアプリがクラッシュした場合、ミューテックスがまだ保持されているのではないかと心配しています。本当?