プログラムが2回起動しないようにQTで保護の方法

QSingleApplicationクラスを使用してアプリケーションの複数起動を防止できます。QSingleApplicationはQt内のクラスであり、プログラムインスタンスが1つしか起動されていないことを保証します。

QSingleApplicationを使用する手順は次のとおりです。

  1. main関数内に、アプリケーションのユニークな識別子を指定して、QSingleApplicationオブジェクトを作成する。
QSingleApplication app("com.example.myapp");
  1. QSingleApplication::isRunning() を使って現在プログラムが動作しているかどうかを判断する。true を返した場合、すでにプログラムは動作中であり、終了するか、動作しているインスタンスに新しいコマンドラインパラメータを渡すことができる。false を返した場合、プログラムは動作していないため、初期化を行うことができる。たとえば:
if (app.isRunning()) {
    // 程序已经在运行,退出或者将新的命令行参数传递给已经运行的实例
    return 0;
}
  1. アプリケーションがまだ実行されていない場合、初期化処理を続行できます。例:
// 创建主窗口
MainWindow w;
w.show();

// 进入Qt事件循环
return app.exec();

これにより QSingleApplication で、プログラムが2つ目のインスタンスを起動しようとした時に、すでにインスタンスが実行中であることを検出して、2つ目のインスタンスの起動を阻止します。

bannerAds