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. exe file replace using QProcess
Forum Updated to NodeBB v4.3 + New Features

exe file replace using QProcess

Scheduled Pinned Locked Moved Solved General and Desktop
29 Posts 5 Posters 9.2k Views 4 Watching
  • 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.
  • 4 Offline
    4 Offline
    4j1th
    wrote on last edited by
    #2

    In linux I replace del with rm it works fine

    Pardon my English
    Thank you.

    1 Reply Last reply
    0
    • mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #3

      Hi
      in linux the exe is not locked but I believe it is in windows.
      Have you tried deleting it manually with explorer?

      4 1 Reply Last reply
      0
      • mrjjM mrjj

        Hi
        in linux the exe is not locked but I believe it is in windows.
        Have you tried deleting it manually with explorer?

        4 Offline
        4 Offline
        4j1th
        wrote on last edited by
        #4

        @mrjj
        my linux code is

        QProcess* process = new QProcess(this);
        process->start("rm", QStringList() << "mysoft");
        connect(process, SIGNAL(finished(int,QProcess::ExitStatus)),
                                    this, SLOT(processFinished()));
        

        tried the same path with del in cmd and it works fine

        Pardon my English
        Thank you.

        mrjjM 1 Reply Last reply
        0
        • 4 4j1th

          @mrjj
          my linux code is

          QProcess* process = new QProcess(this);
          process->start("rm", QStringList() << "mysoft");
          connect(process, SIGNAL(finished(int,QProcess::ExitStatus)),
                                      this, SLOT(processFinished()));
          

          tried the same path with del in cmd and it works fine

          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #5

          @4j1th said:
          Ok. never tried to delete running exe :)
          I wonder about the name
          "mySoft.exe.tmp"

          Why .tmp?

          4 1 Reply Last reply
          0
          • mrjjM mrjj

            @4j1th said:
            Ok. never tried to delete running exe :)
            I wonder about the name
            "mySoft.exe.tmp"

            Why .tmp?

            4 Offline
            4 Offline
            4j1th
            wrote on last edited by
            #6

            @mrjj download a new version from server and save it in mysoft.exe.tmp then remove mysoft.exe then rename mysoft.exe.tmp to mysoft.exe. I tried this method because in this way I don't want to create another program for updating.

            I just try to delete another file in the same dir but the same error, then try to delete an image file in home dir it also give the same error. I think 't's not about the permission. also tried using DEL /F /Q /A <File Path>

            Pardon my English
            Thank you.

            mrjjM 1 Reply Last reply
            0
            • 4 4j1th

              @mrjj download a new version from server and save it in mysoft.exe.tmp then remove mysoft.exe then rename mysoft.exe.tmp to mysoft.exe. I tried this method because in this way I don't want to create another program for updating.

              I just try to delete another file in the same dir but the same error, then try to delete an image file in home dir it also give the same error. I think 't's not about the permission. also tried using DEL /F /Q /A <File Path>

              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #7

              @4j1th
              Maybe its something basic ?
              Like spaces in file path ?

              4 1 Reply Last reply
              0
              • mrjjM mrjj

                @4j1th
                Maybe its something basic ?
                Like spaces in file path ?

                4 Offline
                4 Offline
                4j1th
                wrote on last edited by
                #8

                @mrjj use the out from qDebug() << currentpath; then run it on cmd works

                Pardon my English
                Thank you.

                mrjjM 1 Reply Last reply
                0
                • 4 4j1th

                  @mrjj use the out from qDebug() << currentpath; then run it on cmd works

                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by mrjj
                  #9

                  @4j1th
                  Hmm. i think might need to run cmd also as del is part of command.exe.
                  http://stackoverflow.com/questions/21596104/how-to-execute-a-cmd-command-using-qprocess
                  he uses "cmd"
                  something like
                  process->start("cmd", QStringList() << "del " << currentpath);
                  maybe ?

                  kshegunovK 4 2 Replies Last reply
                  1
                  • mrjjM mrjj

                    @4j1th
                    Hmm. i think might need to run cmd also as del is part of command.exe.
                    http://stackoverflow.com/questions/21596104/how-to-execute-a-cmd-command-using-qprocess
                    he uses "cmd"
                    something like
                    process->start("cmd", QStringList() << "del " << currentpath);
                    maybe ?

                    kshegunovK Offline
                    kshegunovK Offline
                    kshegunov
                    Moderators
                    wrote on last edited by
                    #10

                    @4j1th said:

                    I am trying to update my soft. itself in windows, I can't replace a running exe itself with in so I try to do it by using QProcess.

                    You can't, the OS will lock the file and will not allow you to modify it. It doesn't matter if you use QProcess or cmd, or explorer, it will not work.

                    Read and abide by the Qt Code of Conduct

                    4 1 Reply Last reply
                    1
                    • mrjjM mrjj

                      @4j1th
                      Hmm. i think might need to run cmd also as del is part of command.exe.
                      http://stackoverflow.com/questions/21596104/how-to-execute-a-cmd-command-using-qprocess
                      he uses "cmd"
                      something like
                      process->start("cmd", QStringList() << "del " << currentpath);
                      maybe ?

                      4 Offline
                      4 Offline
                      4j1th
                      wrote on last edited by
                      #11

                      @mrjj no luck it can't delete any file

                      Pardon my English
                      Thank you.

                      1 Reply Last reply
                      0
                      • kshegunovK kshegunov

                        @4j1th said:

                        I am trying to update my soft. itself in windows, I can't replace a running exe itself with in so I try to do it by using QProcess.

                        You can't, the OS will lock the file and will not allow you to modify it. It doesn't matter if you use QProcess or cmd, or explorer, it will not work.

                        4 Offline
                        4 Offline
                        4j1th
                        wrote on last edited by 4j1th
                        #12

                        @kshegunov so you're suggesting me to write another programme to run update

                        But this idea works on linux.

                        Pardon my English
                        Thank you.

                        mrjjM 1 Reply Last reply
                        0
                        • 4 4j1th

                          @kshegunov so you're suggesting me to write another programme to run update

                          But this idea works on linux.

                          mrjjM Offline
                          mrjjM Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on last edited by
                          #13

                          @4j1th
                          Hi
                          just tested in win 7.
                          it wont allow to delete running exe.

                          Linux will, i know. but Windows wont allow.

                          4 1 Reply Last reply
                          0
                          • mrjjM mrjj

                            @4j1th
                            Hi
                            just tested in win 7.
                            it wont allow to delete running exe.

                            Linux will, i know. but Windows wont allow.

                            4 Offline
                            4 Offline
                            4j1th
                            wrote on last edited by
                            #14

                            @mrjj can you delete any other file, I can't do it either

                            Pardon my English
                            Thank you.

                            mrjjM 1 Reply Last reply
                            1
                            • 4 4j1th

                              @mrjj can you delete any other file, I can't do it either

                              mrjjM Offline
                              mrjjM Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on last edited by
                              #15

                              @4j1th
                              hi

                               QProcess process;
                                  process.start("cmd", QStringList() <<"/C" << "del" << "e:/test.txt " );
                              

                              this delete the file i put on e:\

                              4 1 Reply Last reply
                              1
                              • mrjjM mrjj

                                @4j1th
                                hi

                                 QProcess process;
                                    process.start("cmd", QStringList() <<"/C" << "del" << "e:/test.txt " );
                                

                                this delete the file i put on e:\

                                4 Offline
                                4 Offline
                                4j1th
                                wrote on last edited by
                                #16

                                @mrjj @kshegunov

                                you're right, can't replace running exe, so I think the best way to update is write an another app for updation right?

                                Pardon my English
                                Thank you.

                                mrjjM 1 Reply Last reply
                                1
                                • 4 4j1th

                                  @mrjj @kshegunov

                                  you're right, can't replace running exe, so I think the best way to update is write an another app for updation right?

                                  mrjjM Offline
                                  mrjjM Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #17

                                  @4j1th
                                  Well even another program cannot override the exe, so the updater must
                                  close the running version.

                                  4 1 Reply Last reply
                                  1
                                  • mrjjM mrjj

                                    @4j1th
                                    Well even another program cannot override the exe, so the updater must
                                    close the running version.

                                    4 Offline
                                    4 Offline
                                    4j1th
                                    wrote on last edited by
                                    #18

                                    @mrjj Thank you for your help, this is the second time you help me like a guru

                                    Thank you

                                    Pardon my English
                                    Thank you.

                                    mrjjM 1 Reply Last reply
                                    0
                                    • 4 4j1th

                                      @mrjj Thank you for your help, this is the second time you help me like a guru

                                      Thank you

                                      mrjjM Offline
                                      mrjjM Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #19

                                      @4j1th
                                      You are most welcome :)
                                      The exe you are trying to update. is it your own program?

                                      4 1 Reply Last reply
                                      0
                                      • mrjjM mrjj

                                        @4j1th
                                        You are most welcome :)
                                        The exe you are trying to update. is it your own program?

                                        4 Offline
                                        4 Offline
                                        4j1th
                                        wrote on last edited by
                                        #20

                                        @mrjj yes

                                        Pardon my English
                                        Thank you.

                                        mrjjM 1 Reply Last reply
                                        0
                                        • 4 4j1th

                                          @mrjj yes

                                          mrjjM Offline
                                          mrjjM Offline
                                          mrjj
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #21

                                          @4j1th
                                          Ok. that makes it easier to get it to close. :)
                                          Will user check for update from inside the program or how will that happen?
                                          (if i may ask)

                                          4 2 Replies 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