That property UseShellExecute is related to the use of the function ShellExecute existing in Windows ie if you mark as true the class Process will use the function ShellExecute, otherwise, use the CreateProcess.
Createprocess
This is your case and the function will be used CreateProcess, is a much more accurate way to start a process - it does not search the path, and will allow you to redirect the default input or output of the child process.
It will not work when trying to open files as will be explained on ShellExecute.
You must define UseShellExecute as false when:
Shellexecute
The function ShellExecute is used to open a specific file (even a program) - as when we type something in the Windows Run command, for example when we want:
- Open documents where extensions have already been associated with a program - simply type c: test fat.docx that Windows will take charge of opening the Winword program.
- Run batch files - as in
cmd.exe;
- Execute any command in PATH;
Use when you want to open documents, urls or batch files etc... instead of having to explicitly pass the path from where the program was installed.