Thanks blue. I tried that code.
Where is says SKD.Execute(sCMD) should it be SDK.Execute(sCMD) instead? I corrected it myself and it works.
Trouble is the On Error doesnt seem to work

is it because the SDK.execute function is the one thats actually crashing, so the error is internal to it rather than the RR_execute sub?
I ended up using this
Code:
Public Sub RR_Execute(sCMD As String)
If FindWindow(vbNullString, "RoadRunner") <> 0 Then
Set SDK = Nothing
Set SDK = CreateObject("RoadRunner.SDK")
SDK.Execute (sCMD)
Else
Wait_for_RR
End If
End Sub
Is you errortrap code more efficient - if so, Id prefer to get that working

.
The reason I reset SDK is because if RR is closed and then reopened with my app still running, it doesnt know to reset the SDK = "rr.sdk" unless I do it in that subroutine. Unless you can think of another way it can detect that? I feel that getting the SDK errotrap to work would be best!