一度に1つのインスタンスのみをホストOSで実行できるアプリケーションを作成するにはどうすればよいのでしょうか。つまり、シングルトンアプリです。QtでそのようなシングルトンC++アプリを作成する方法を知りたいですか?
3 に答える
QtSingleApplication
からのクラスを使用できますQt Solutions
。これは標準のQtクラスではないことに注意してください。ダウンロードする必要があります。QtSingleApplication
コンポーネントはアプリケーションのサポートを提供します
これは、ユーザーごとに1回だけ開始できます。
アプリケーションが起動したら、ファイルを作成します。アプリケーションが終了したら、ファイルを削除します。
ファイルが存在する場合は、エラーメッセージを表示して終了します。
これにはQtは必要ありません。これは、グラフィックライブラリです。これを行うには、通常のWINAPIメソッドを使用するだけです。提案されたようなファイルを作成するか(ただし、アプリケーションがクラッシュしたり、停電したりすると奇妙になる可能性があります)、メモリマップトファイルやその他のグローバルオブジェクトを使用して、アプリがまだ実行されているかどうかを確認できます。プロセスリストをチェックして、別のコピーが実行されているかどうかを確認することもできます。もう1つのことは、ウィンドウクラスでFindWindowを実行することです。これは非常に簡単で、うまく機能します。たくさんのオプションがあります。これを検索するだけです。これはよくある質問です。(これにはいくつかのライブラリを使用できますが、Windowsのみを対象としているため、FindWindowを使用します。)