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. request about scp command (QProcess) using qt
Forum Updated to NodeBB v4.3 + New Features

request about scp command (QProcess) using qt

Scheduled Pinned Locked Moved Unsolved General and Desktop
29 Posts 4 Posters 5.1k Views 2 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.
  • H Offline
    H Offline
    hlowd
    wrote on 7 Nov 2023, 23:00 last edited by
    #5

    @JonB
    hello.

    In the actual code, I entered two backslashes.

    Additionally, by using the exeexcute function rather than the start function, no additional parameters were entered, and a response was received immediately.

    Only the scp command did not work.

    J H 2 Replies Last reply 8 Nov 2023, 06:27
    0
    • H hlowd
      7 Nov 2023, 23:00

      @JonB
      hello.

      In the actual code, I entered two backslashes.

      Additionally, by using the exeexcute function rather than the start function, no additional parameters were entered, and a response was received immediately.

      Only the scp command did not work.

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 8 Nov 2023, 06:27 last edited by
      #6

      @hlowd said in request about scp command (QProcess) using qt:

      In the actual code, I entered two backslashes

      Please post real code you're using to avoid such confusion.
      "Only the scp command did not work" - so does it work now or not?
      Did you add error handling as suggested?

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

      1 Reply Last reply
      0
      • H hlowd
        7 Nov 2023, 23:00

        @JonB
        hello.

        In the actual code, I entered two backslashes.

        Additionally, by using the exeexcute function rather than the start function, no additional parameters were entered, and a response was received immediately.

        Only the scp command did not work.

        H Offline
        H Offline
        hlowd
        wrote on 8 Nov 2023, 06:49 last edited by hlowd 11 Aug 2023, 06:58
        #7

        @hlowd

        This is the original source code.
        What's wrong?

        ps) I added two backslashes to the content, but only one is visible.

        //-----------------------------------
        // header
        //-----------------------------------
        #ifndef MAINWINDOW_H
        #define MAINWINDOW_H

        #include <QMainWindow>
        #include <QProcess>

        QT_BEGIN_NAMESPACE
        namespace Ui { class MainWindow; }
        QT_END_NAMESPACE

        class MainWindow : public QMainWindow
        {
        Q_OBJECT

        public:
        MainWindow(QWidget *parent = nullptr);
        ~MainWindow();
        QProcess *m_process;

        private slots:
        void on_pushButton_clicked();
        void readOutput();

        private:
        Ui::MainWindow *ui;
        };
        #endif // MAINWINDOW_H

        //----------------------------------------
        //cpp
        //-----------------------------------------
        #include "mainwindow.h"
        #include "ui_mainwindow.h"
        #include <qDebug>

        MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
        {
        ui->setupUi(this);
        }

        MainWindow::~MainWindow()
        {
        delete ui;
        }

        void MainWindow::on_pushButton_clicked()
        {
        m_process = new QProcess(this);
        QStringList listArguments;

        #if 0
        QString strParam = "scp";
        listArguments << "D:\SVN\Work\test\a.ini user@192.168.1.250:\home\user\SW\";
        #else
        QString strParam = "ipconfig";
        listArguments << "/all";
        #endif
        connect(m_process, SIGNAL(readyReadStandardError()), this, SLOT(readOutput()));
        connect(m_process, SIGNAL(readyReadStandardOutput()), this, SLOT(readOutput()));
        connect(m_process, SIGNAL(errorOccurred()), this, SLOT(readOutput()));

        m_process->start(strParam, listArguments);
        m_process->waitForFinished();
        
        if(m_process)
            delete m_process;
        

        }

        void MainWindow::readOutput()
        {
        QString StdOut = m_process->readAllStandardOutput();
        QString StdError = m_process->readAllStandardError();
        QString StdError1 = m_process->errorString();
        qDebug() << "======================================\n";
        qDebug() << StdOut;
        qDebug() << StdError;
        qDebug() << StdError1;
        qDebug() << "======================================\n";
        }

        J H 2 Replies Last reply 8 Nov 2023, 06:54
        0
        • H hlowd
          8 Nov 2023, 06:49

          @hlowd

          This is the original source code.
          What's wrong?

          ps) I added two backslashes to the content, but only one is visible.

          //-----------------------------------
          // header
          //-----------------------------------
          #ifndef MAINWINDOW_H
          #define MAINWINDOW_H

          #include <QMainWindow>
          #include <QProcess>

          QT_BEGIN_NAMESPACE
          namespace Ui { class MainWindow; }
          QT_END_NAMESPACE

          class MainWindow : public QMainWindow
          {
          Q_OBJECT

          public:
          MainWindow(QWidget *parent = nullptr);
          ~MainWindow();
          QProcess *m_process;

          private slots:
          void on_pushButton_clicked();
          void readOutput();

          private:
          Ui::MainWindow *ui;
          };
          #endif // MAINWINDOW_H

          //----------------------------------------
          //cpp
          //-----------------------------------------
          #include "mainwindow.h"
          #include "ui_mainwindow.h"
          #include <qDebug>

          MainWindow::MainWindow(QWidget *parent)
          : QMainWindow(parent)
          , ui(new Ui::MainWindow)
          {
          ui->setupUi(this);
          }

          MainWindow::~MainWindow()
          {
          delete ui;
          }

          void MainWindow::on_pushButton_clicked()
          {
          m_process = new QProcess(this);
          QStringList listArguments;

          #if 0
          QString strParam = "scp";
          listArguments << "D:\SVN\Work\test\a.ini user@192.168.1.250:\home\user\SW\";
          #else
          QString strParam = "ipconfig";
          listArguments << "/all";
          #endif
          connect(m_process, SIGNAL(readyReadStandardError()), this, SLOT(readOutput()));
          connect(m_process, SIGNAL(readyReadStandardOutput()), this, SLOT(readOutput()));
          connect(m_process, SIGNAL(errorOccurred()), this, SLOT(readOutput()));

          m_process->start(strParam, listArguments);
          m_process->waitForFinished();
          
          if(m_process)
              delete m_process;
          

          }

          void MainWindow::readOutput()
          {
          QString StdOut = m_process->readAllStandardOutput();
          QString StdError = m_process->readAllStandardError();
          QString StdError1 = m_process->errorString();
          qDebug() << "======================================\n";
          qDebug() << StdOut;
          qDebug() << StdError;
          qDebug() << StdError1;
          qDebug() << "======================================\n";
          }

          J Offline
          J Offline
          jsulm
          Lifetime Qt Champion
          wrote on 8 Nov 2023, 06:54 last edited by
          #8

          @hlowd said in request about scp command (QProcess) using qt:

          listArguments << "D:\SVN\Work\test\a.ini user@192.168.1.250:\home\user\SW";

          Is this really your real code?!
          You again have single back-slashes.
          And why do you use back-slashes for paths on Linux side?
          Also that line should be:

          listArguments << "D:\\SVN\\Work\\test\\a.ini" <<  "user@192.168.1.250:/home/user/SW/";
          

          And please format you code properly.

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

          1 Reply Last reply
          1
          • H hlowd
            8 Nov 2023, 06:49

            @hlowd

            This is the original source code.
            What's wrong?

            ps) I added two backslashes to the content, but only one is visible.

            //-----------------------------------
            // header
            //-----------------------------------
            #ifndef MAINWINDOW_H
            #define MAINWINDOW_H

            #include <QMainWindow>
            #include <QProcess>

            QT_BEGIN_NAMESPACE
            namespace Ui { class MainWindow; }
            QT_END_NAMESPACE

            class MainWindow : public QMainWindow
            {
            Q_OBJECT

            public:
            MainWindow(QWidget *parent = nullptr);
            ~MainWindow();
            QProcess *m_process;

            private slots:
            void on_pushButton_clicked();
            void readOutput();

            private:
            Ui::MainWindow *ui;
            };
            #endif // MAINWINDOW_H

            //----------------------------------------
            //cpp
            //-----------------------------------------
            #include "mainwindow.h"
            #include "ui_mainwindow.h"
            #include <qDebug>

            MainWindow::MainWindow(QWidget *parent)
            : QMainWindow(parent)
            , ui(new Ui::MainWindow)
            {
            ui->setupUi(this);
            }

            MainWindow::~MainWindow()
            {
            delete ui;
            }

            void MainWindow::on_pushButton_clicked()
            {
            m_process = new QProcess(this);
            QStringList listArguments;

            #if 0
            QString strParam = "scp";
            listArguments << "D:\SVN\Work\test\a.ini user@192.168.1.250:\home\user\SW\";
            #else
            QString strParam = "ipconfig";
            listArguments << "/all";
            #endif
            connect(m_process, SIGNAL(readyReadStandardError()), this, SLOT(readOutput()));
            connect(m_process, SIGNAL(readyReadStandardOutput()), this, SLOT(readOutput()));
            connect(m_process, SIGNAL(errorOccurred()), this, SLOT(readOutput()));

            m_process->start(strParam, listArguments);
            m_process->waitForFinished();
            
            if(m_process)
                delete m_process;
            

            }

            void MainWindow::readOutput()
            {
            QString StdOut = m_process->readAllStandardOutput();
            QString StdError = m_process->readAllStandardError();
            QString StdError1 = m_process->errorString();
            qDebug() << "======================================\n";
            qDebug() << StdOut;
            qDebug() << StdError;
            qDebug() << StdError1;
            qDebug() << "======================================\n";
            }

            H Offline
            H Offline
            hlowd
            wrote on 8 Nov 2023, 06:59 last edited by
            #9

            @hlowd

            I entered two words in the post, but only one is displayed on the screen...

            J H 2 Replies Last reply 8 Nov 2023, 07:01
            0
            • H hlowd
              8 Nov 2023, 06:59

              @hlowd

              I entered two words in the post, but only one is displayed on the screen...

              J Offline
              J Offline
              jsulm
              Lifetime Qt Champion
              wrote on 8 Nov 2023, 07:01 last edited by
              #10

              @hlowd said in request about scp command (QProcess) using qt:

              I entered two words in the post, but only one is displayed on the screen...

              Use code tags properly, then it will be shown correctly

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

              1 Reply Last reply
              0
              • H hlowd
                8 Nov 2023, 06:59

                @hlowd

                I entered two words in the post, but only one is displayed on the screen...

                H Offline
                H Offline
                hlowd
                wrote on 8 Nov 2023, 07:09 last edited by
                #11

                @hlowd

                listArguments << "D:\\SVN\\Work\\test\\a.ini" << "user@192.168.1.250:/home/user/SW/";

                Even though I entered it like this, it is the same.
                The response from start comes immediately, but the readOutput function is not called.

                J H 2 Replies Last reply 8 Nov 2023, 07:12
                0
                • H hlowd
                  8 Nov 2023, 07:09

                  @hlowd

                  listArguments << "D:\\SVN\\Work\\test\\a.ini" << "user@192.168.1.250:/home/user/SW/";

                  Even though I entered it like this, it is the same.
                  The response from start comes immediately, but the readOutput function is not called.

                  J Offline
                  J Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on 8 Nov 2023, 07:12 last edited by
                  #12

                  @hlowd said in request about scp command (QProcess) using qt:

                  but the readOutput function is not called

                  Probably because you're deleting m_process right after waitForFinished.
                  Are you sure scp.exe command is found?
                  Try with an absolute path to scp.exe to make sure it is actually found.

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

                  1 Reply Last reply
                  0
                  • H hlowd
                    8 Nov 2023, 07:09

                    @hlowd

                    listArguments << "D:\\SVN\\Work\\test\\a.ini" << "user@192.168.1.250:/home/user/SW/";

                    Even though I entered it like this, it is the same.
                    The response from start comes immediately, but the readOutput function is not called.

                    H Offline
                    H Offline
                    hlowd
                    wrote on 8 Nov 2023, 07:28 last edited by
                    #13

                    @hlowd

                    The symptom is the same even if delete is not called.

                    If it is a command instruction rather than a code, the instruction will be executed normally.
                    The file is moved normally. (Windows -> Linux)

                    J H 2 Replies Last reply 8 Nov 2023, 07:32
                    0
                    • H hlowd
                      8 Nov 2023, 07:28

                      @hlowd

                      The symptom is the same even if delete is not called.

                      If it is a command instruction rather than a code, the instruction will be executed normally.
                      The file is moved normally. (Windows -> Linux)

                      J Offline
                      J Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on 8 Nov 2023, 07:32 last edited by
                      #14

                      @hlowd Again: try with absolute path to scp.exe

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

                      1 Reply Last reply
                      0
                      • H hlowd
                        8 Nov 2023, 07:28

                        @hlowd

                        The symptom is the same even if delete is not called.

                        If it is a command instruction rather than a code, the instruction will be executed normally.
                        The file is moved normally. (Windows -> Linux)

                        H Offline
                        H Offline
                        hlowd
                        wrote on 8 Nov 2023, 07:44 last edited by hlowd 11 Aug 2023, 07:56
                        #15

                        @hlowd
                        There are files in that path.

                        C:\Windows\WinSxS\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb
                        
                        scp.exe
                        ssh-add.exe
                        ssh-agent.exe
                        ssh-keygen.exe
                        

                        // new code

                        QString strParam = "C:\\Windows\\WinSxS\\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb\\scp.exe";
                        

                        // error message

                        "CreateProcessW failed error:2 posix_spawn: No such file or directory"
                        
                        J J 2 Replies Last reply 8 Nov 2023, 07:49
                        0
                        • H hlowd
                          8 Nov 2023, 07:44

                          @hlowd
                          There are files in that path.

                          C:\Windows\WinSxS\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb
                          
                          scp.exe
                          ssh-add.exe
                          ssh-agent.exe
                          ssh-keygen.exe
                          

                          // new code

                          QString strParam = "C:\\Windows\\WinSxS\\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb\\scp.exe";
                          

                          // error message

                          "CreateProcessW failed error:2 posix_spawn: No such file or directory"
                          
                          J Offline
                          J Offline
                          JonB
                          wrote on 8 Nov 2023, 07:49 last edited by JonB 11 Aug 2023, 07:51
                          #16

                          @hlowd
                          If you want help on this, at least for my part, please make the effort to enclose your code blocks and literal extracts in the forums block quotes (</> button) as we have asked several times. It does not require much effort on your side.

                          By now you should be trying a command of scp, nothing else, no arguments, to verify that (a) it is found and can be run and (b) you can successfully read any output from it, e.g. presumably a "usage" message in this case.

                          1 Reply Last reply
                          0
                          • H hlowd
                            8 Nov 2023, 07:44

                            @hlowd
                            There are files in that path.

                            C:\Windows\WinSxS\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb
                            
                            scp.exe
                            ssh-add.exe
                            ssh-agent.exe
                            ssh-keygen.exe
                            

                            // new code

                            QString strParam = "C:\\Windows\\WinSxS\\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb\\scp.exe";
                            

                            // error message

                            "CreateProcessW failed error:2 posix_spawn: No such file or directory"
                            
                            J Offline
                            J Offline
                            jsulm
                            Lifetime Qt Champion
                            wrote on 8 Nov 2023, 07:51 last edited by
                            #17

                            @hlowd said in request about scp command (QProcess) using qt:

                            Can I do it this way?

                            Yes, just try.
                            I would also execute scp using this absolute path in a terminal to make sure it works.

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

                            H 1 Reply Last reply 8 Nov 2023, 08:00
                            0
                            • J jsulm
                              8 Nov 2023, 07:51

                              @hlowd said in request about scp command (QProcess) using qt:

                              Can I do it this way?

                              Yes, just try.
                              I would also execute scp using this absolute path in a terminal to make sure it works.

                              H Offline
                              H Offline
                              hlowd
                              wrote on 8 Nov 2023, 08:00 last edited by
                              #18

                              @jsulm

                              There are files in that path.

                              C:\Windows\WinSxS\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb
                              
                              scp.exe
                              ssh-add.exe
                              ssh-agent.exe
                              ssh-keygen.exe
                              

                              // new code

                              QString strParam = "C:\\Windows\\WinSxS\\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb\\scp.exe";
                              

                              // error message

                              "CreateProcessW failed error:2 posix_spawn: No such file or directory"
                              

                              The same error occurs in the command prompt.

                              J J 2 Replies Last reply 8 Nov 2023, 08:10
                              0
                              • H hlowd
                                8 Nov 2023, 08:00

                                @jsulm

                                There are files in that path.

                                C:\Windows\WinSxS\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb
                                
                                scp.exe
                                ssh-add.exe
                                ssh-agent.exe
                                ssh-keygen.exe
                                

                                // new code

                                QString strParam = "C:\\Windows\\WinSxS\\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb\\scp.exe";
                                

                                // error message

                                "CreateProcessW failed error:2 posix_spawn: No such file or directory"
                                

                                The same error occurs in the command prompt.

                                J Offline
                                J Offline
                                JonB
                                wrote on 8 Nov 2023, 08:10 last edited by
                                #19

                                @hlowd
                                I am not a total Windows expert, but I did not think you should ever attempt to run anything in the WinSxS area? You should be running the scp which is on your PATH (presumably).

                                1 Reply Last reply
                                0
                                • H hlowd
                                  8 Nov 2023, 08:00

                                  @jsulm

                                  There are files in that path.

                                  C:\Windows\WinSxS\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb
                                  
                                  scp.exe
                                  ssh-add.exe
                                  ssh-agent.exe
                                  ssh-keygen.exe
                                  

                                  // new code

                                  QString strParam = "C:\\Windows\\WinSxS\\amd64_openssh-common-components-onecore_31bf3856ad364e35_10.0.22621.1_none_1e3c4880a37d88bb\\scp.exe";
                                  

                                  // error message

                                  "CreateProcessW failed error:2 posix_spawn: No such file or directory"
                                  

                                  The same error occurs in the command prompt.

                                  J Offline
                                  J Offline
                                  jsulm
                                  Lifetime Qt Champion
                                  wrote on 8 Nov 2023, 08:12 last edited by
                                  #20

                                  @hlowd Did scp executable ever work for you in terminal? The path where it is located looks strange, don't know from where it comes. On my machine I have it here: c:\windows\System32\OpenSSH\scp.exe

                                  You can check where your scp.exe is located using this command:

                                  where scp
                                  

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

                                  H 1 Reply Last reply 8 Nov 2023, 08:25
                                  2
                                  • J jsulm
                                    8 Nov 2023, 08:12

                                    @hlowd Did scp executable ever work for you in terminal? The path where it is located looks strange, don't know from where it comes. On my machine I have it here: c:\windows\System32\OpenSSH\scp.exe

                                    You can check where your scp.exe is located using this command:

                                    where scp
                                    
                                    H Offline
                                    H Offline
                                    hlowd
                                    wrote on 8 Nov 2023, 08:25 last edited by
                                    #21

                                    @jsulm

                                    The scp.exe file exists in that path.

                                    C:\Windows\System32\OpenSSH
                                    

                                    I don't know why I couldn't find it using Explorer search.

                                    J 1 Reply Last reply 8 Nov 2023, 09:13
                                    0
                                    • H hlowd
                                      8 Nov 2023, 08:25

                                      @jsulm

                                      The scp.exe file exists in that path.

                                      C:\Windows\System32\OpenSSH
                                      

                                      I don't know why I couldn't find it using Explorer search.

                                      J Offline
                                      J Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on 8 Nov 2023, 09:13 last edited by
                                      #22

                                      @hlowd said in request about scp command (QProcess) using qt:

                                      The scp.exe file exists in that path

                                      Does it work with this path?

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

                                      H 1 Reply Last reply 15 Nov 2023, 08:10
                                      0
                                      • J jsulm
                                        8 Nov 2023, 09:13

                                        @hlowd said in request about scp command (QProcess) using qt:

                                        The scp.exe file exists in that path

                                        Does it work with this path?

                                        H Offline
                                        H Offline
                                        hlowd
                                        wrote on 15 Nov 2023, 08:10 last edited by
                                        #23
                                        This post is deleted!
                                        1 Reply Last reply
                                        0
                                        • H Offline
                                          H Offline
                                          hlowd
                                          wrote on 15 Nov 2023, 23:03 last edited by hlowd
                                          #24

                                          @jsulm
                                          No, it doesn't work..

                                          J 1 Reply Last reply 16 Nov 2023, 09:04
                                          0

                                          14/29

                                          8 Nov 2023, 07:32

                                          • Login

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