Am Start hat noch ein
ShowWindow(Handle, SW_HIDE);
gefehlt.
Das Ganze ist so komplex weil ich den Eintrag des Programms dauerhaft aus der Taskleiste verbannen wollte und es immer wieder Ärger gab, dass der Eintrag beim Zeigen des Fensters wieder auftauchte.
Ich werde das mal mit dem Virtual PC probieren, danke