Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. how to create Singleinstance application
Forum Updated to NodeBB v4.3 + New Features

how to create Singleinstance application

Scheduled Pinned Locked Moved Solved General and Desktop
13 Posts 4 Posters 3.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Bharth

    hi,,,
    if im running exe file its opening application again if i click exe file it is opening new application ,,,
    i want only one application if it is already opened it should show Qmessaagebox

    please help me,,,,
    thanks in advance

    J.HilkJ Offline
    J.HilkJ Offline
    J.Hilk
    Moderators
    wrote on last edited by
    #3

    @Bharth
    I do this via a QSharedMemory instance, I'm not sure if thats the best way to do it though.

    //insice main.cpp
    QSharedMemory _singular("myAppNameInstance");
        if(_singular.attach(QSharedMemory::ReadOnly)){
            //Instance Already running
            _singular.detach();
            //Your MessageBox-code should go here
            return -42;
        }else{
           //Program is not yet running.
            _singular.create(1);
        }
    

    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


    Q: What's that?
    A: It's blue light.
    Q: What does it do?
    A: It turns blue.

    B 1 Reply Last reply
    2
    • RatzzR Ratzz

      @Bharth
      You can make use of QtSingleApplication https://doc.qt.io/archives/qtextended4.4/qtopiadesktop/qtsingleapplication.html
      How to use them here.
      Good example by using QLockFile http://blog.aeguana.com/2015/10/15/how-to-run-a-single-app-instance-in-qt/

      B Offline
      B Offline
      Bharth
      wrote on last edited by
      #4

      @Ratzz said in how to create Singleinstance application:

      @Bharth
      You can make use of QtSingleApplication https://doc.qt.io/archives/qtextended4.4/qtopiadesktop/qtsingleapplication.html
      How to use them here.

      i checked this one it is showing file not found
      #include<QtSingleApplication>

      RatzzR 1 Reply Last reply
      0
      • B Bharth

        @Ratzz said in how to create Singleinstance application:

        @Bharth
        You can make use of QtSingleApplication https://doc.qt.io/archives/qtextended4.4/qtopiadesktop/qtsingleapplication.html
        How to use them here.

        i checked this one it is showing file not found
        #include<QtSingleApplication>

        RatzzR Offline
        RatzzR Offline
        Ratzz
        wrote on last edited by Ratzz
        #5

        @Bharth said in how to create Singleinstance application:

        it is showing file not found

        Its not part of Qt. You need to download and add them to your project.
        You can download from here .

        --Alles ist gut.

        B 1 Reply Last reply
        1
        • J.HilkJ J.Hilk

          @Bharth
          I do this via a QSharedMemory instance, I'm not sure if thats the best way to do it though.

          //insice main.cpp
          QSharedMemory _singular("myAppNameInstance");
              if(_singular.attach(QSharedMemory::ReadOnly)){
                  //Instance Already running
                  _singular.detach();
                  //Your MessageBox-code should go here
                  return -42;
              }else{
                 //Program is not yet running.
                  _singular.create(1);
              }
          
          B Offline
          B Offline
          Bharth
          wrote on last edited by
          #6

          @J.Hilk said in how to create Singleinstance application:

          myAppNameInstance

          QMessageBox::information(this,"Application is already running...","appname");

          this keyword showing error,,,,invalid use of this

          why you are retunring -42 what is the meaning...

          thanks for your reply

          J.HilkJ 1 Reply Last reply
          0
          • B Bharth

            @J.Hilk said in how to create Singleinstance application:

            myAppNameInstance

            QMessageBox::information(this,"Application is already running...","appname");

            this keyword showing error,,,,invalid use of this

            why you are retunring -42 what is the meaning...

            thanks for your reply

            J.HilkJ Offline
            J.HilkJ Offline
            J.Hilk
            Moderators
            wrote on last edited by J.Hilk
            #7

            @Bharth
            the main.cpp is not QObject based class, so you can't give QMessageBox this as parent.

            why you are retunring -42 what is the meanin

            The Answer to the Ultimate Question of Death, The Universe, and Everything ...

            The boring answer: an arbitrary return value I choose to identify the exit of the application.


            Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


            Q: What's that?
            A: It's blue light.
            Q: What does it do?
            A: It turns blue.

            1 Reply Last reply
            5
            • RatzzR Ratzz

              @Bharth said in how to create Singleinstance application:

              it is showing file not found

              Its not part of Qt. You need to download and add them to your project.
              You can download from here .

              B Offline
              B Offline
              Bharth
              wrote on last edited by
              #8

              @Ratzz said in how to create Singleinstance application:

              @Bharth said in how to create Singleinstance application:

              it is showing file not found

              Its not part of Qt. You need to download and add them to your project.
              You can download from here .

              i downloaded but i dont know which i should add to my project

              RatzzR 1 Reply Last reply
              0
              • B Bharth

                @Ratzz said in how to create Singleinstance application:

                @Bharth said in how to create Singleinstance application:

                it is showing file not found

                Its not part of Qt. You need to download and add them to your project.
                You can download from here .

                i downloaded but i dont know which i should add to my project

                RatzzR Offline
                RatzzR Offline
                Ratzz
                wrote on last edited by
                #9

                @Bharth said in how to create Singleinstance application:

                i dont know which i should add to my project

                For me this works
                alt text

                --Alles ist gut.

                1 Reply Last reply
                3
                • B Offline
                  B Offline
                  Bharth
                  wrote on last edited by
                  #10

                  thanks for your reply ,,,i will try

                  1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    Bharth
                    wrote on last edited by
                    #11

                    its working but not able to show qmessagebox,,,,
                    again if i click exe file it should open old one now its not opening

                    jsulmJ 1 Reply Last reply
                    0
                    • B Bharth

                      its working but not able to show qmessagebox,,,,
                      again if i click exe file it should open old one now its not opening

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #12

                      @Bharth said in how to create Singleinstance application:

                      again if i click exe file it should open old one now its not opening

                      Do you mean you want to show a message if you try to start a second instance?
                      Then simply do it inside this block:

                      if (instance.sendMessage("Wake up!"))
                      {
                          QMessageBox::information(nullptr, "Information", "Already running!", ...);
                          return 0;
                      }
                      

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      3
                      • B Offline
                        B Offline
                        Bharth
                        wrote on last edited by
                        #13

                        @jsulm said in how to create Singleinstance application:

                        QMessageBox::information(nullptr, "Information", "Already running!", ...);

                        thank you so much its worked....

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved