Sending Ctrl+C event to a process launched using QProcess on Windows



  • Hello all,

    I have a dialog which acts as a configurator for a console application. The dialog's job is to offer the user a set of widgets (which mirror the options supported by the console application) and when user clicks on the "Start" button, the dialog creates and starts a QProcess with the console application's name and parameters based on the state of the widgets in the GUI. I am able to start the process successfully and everything works fine. However, when I want to kill the process, the console application needs to shutdown gracefully, meaning it has to close files, flush data, close devices etc., and then terminate.

    I used QProcess::close(), this immediately kills the application and the app is unable to shutdown gracefully.

    I have used the Win32 API GenerateConsoleCtrlEvent(CTRL_C_EVENT, Q_PID::dwProcessId) to send an even to the same. I see that the above API returns a non-zero value (indicating a success, it would return 0 upon failure), but my process continues to run.

    Can anyone help me with how I can signal the QProcess to shutdown gracefully? Or is there any other way to do this?

    Regards,
    Bharath



  • if you are using Windows , u can use
    @
    QProcess p;
    p.execute("TASKKILL /PID ProcessID");
    @

    ProcessID = ID of u app ;



  • Thanks for the response, I will try that out.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.