Welchen Fehler gibt ShellExecute denn zurück bzw. was sagt GetLastError?
Was bringt das in dem Fall? Der Start ist nun einmal so nicht möglich.
Das Problem ist, dass eine App nur mit einer entsprechenden Umgebung (in einem App-Container) gestartet werden kann. Wie man das aus einer Desktop-Anwendung heraus machen kann, weiß ich aber auch nicht.