Hast du es mal außerhalb des Debuggers probiert? Oder hast du evtl keine Schreibrechte(Vista/7)?
Ansonsten könnte es sein, dass ShellExecute das startende Programm als ParentProcess verwendet.
Wenn dem so ist könnte man evtl mit
CreateProcess der Sache näher kommen.
Prüfen sollte man das mit dem
ProcessExplorer können.
Benutzt du zufällig den
Unlocker? Der zeigt namlich das mit dem
Handle verknüpfte Programm an.