The main difference between CreateProcess and ShellExecute is this: CreateProcess more low-oriented and ShellExec on the leverage of the high user who sees the user in Explorer.
For example, using CreateProcess , you can use a command line that is longer than MAX_PATH . It has a limit of 32,768 characters. You can also use CreateProcess to run the program (if you have sufficient permissions) on another Windows desktop, for example, on the login screen.
Another example. You can use ShellExecute to launch the Control Panel or open any program that existed on the computer for editing, for example, JPG. Thus, you are working with ShellExecute next to the corresponding actions in Windows Explorer.
source share