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.