I've been doing this, don't know which is better.
Extern "Win32"
Function _WinExec(lpCmdLine:Byte Ptr,nCmdShow:Int)="WinExec@8"
End Extern
Shell("replacewithan.exe /yeppers")
Function Shell(sCMD:String)
Local iShow:Int=3
_WinExec(sCMD.ToCString(),iShow)
End Function