Was sagt denn der Rückgabewert von ShellExecute aus?
Derweil: Momentan ist absolut unklar, ob ShellExecute scheitert oder Ver oder "nur" die Ausgabe nicht "abgeholt" werden kann.
Geht es darum, die Windowsversion zu erfahren?
Warum dann nicht mit Bordmitteln von Delphi?
z. B. hier (mit mehreren Alternativvorschlägen):
https://stackoverflow.com/questions/...indows-version