Rückgabewert 5 sollte eigentlich darauf hinweisen, dass die Datei nicht vom aktuellen Benutzer geöffnet werden kann. Die DACL verweigert dies.
Im Gegensatz dazu wird die Fehlernummer 740 von CreateProcess zurückgeliefert, wenn der aufzurufende Prozess ein "
requireAdministrator" im Manifest besitzt. Ob Shellexecute genau dasselbe zurückliefert, kann ich im mom auch nicht sagen. ShellExecute mit "runas", statt mit "open" aufrufen, sollte aber gehen.