Q:  Is there a way to use a Pascal string as a null terminated string?

A:  Yes.

s[ord(s[0]) + 1] := #0;  { Make it null terminated. }
WinExec(@s[1], sw_ShowNormal);  { @s[1] is the last step. }