If you want to use CreateProcess or CreateProcessAsUser and you also want to set the target desktop, you should make sure that the target winstation (usual winsta0) and desktop name (usual default) is spelled correctly.
If you misspell the name (say defaut instead of default – missing l ) the process creation may succeed but your application won’t show but start running.