1 #ifndef Header_ExecProgram
2 #define Header_ExecProgram
3 
4 #include "mostQtHeaders.h"
5 
6 class ExecProgram
7 {
8 public:
9 	ExecProgram(void);
10 	ExecProgram(const QString &shellCommandLine, const QString &additionalSearchPaths, const QString &workingDirectory = QString());
11 	ExecProgram(const QString &progName, const QStringList &arguments, const QString &additionalSearchPaths = QString(), const QString &workingDirectory = QString());
12 
13 	bool execAndWait(void);
14 	void execAndNoWait(QProcess &proc) const;
15 	bool execDetached(void) const;
16 
17 	// Input parameters
18 	QString m_program;
19 	QStringList m_arguments;
20 	QString m_additionalSearchPaths;
21 	QString m_workingDirectory;
22 #ifdef Q_OS_WIN
23 	QProcess::CreateProcessArgumentModifier m_winProcModifier;
24 #endif
25 
26 	// Output parameters. Only assigned by synchronous execAndWait
27 	bool m_normalRun; // If false then program either did not run or crashed
28 	int m_exitCode;
29 	QString m_standardOutput;
30 	QString m_standardError;
31 
32 private:
33 	void setProgramAndArguments(const QString &progNameAndArguments);
34 	QString pathExtend(void) const;
35 	static void pathSet(const QString &path);
36 	void setWinProcModifier(QProcess &proc) const;
37 };
38 
39 #endif // EXECPROGRAM_H
40