I would do something like this:
For Each _sensor As KinectSensor In KinectSensor.KinectSensors
sensor = _sensor
...//setup event handlers and such
Try
sensor.Start() //If it gets past this, then we can exit as it has
// successfully started a kinect
Exit For
Catch ex As ApplicationException
MsgBox("That Kinect is being used in another application, moving to the next")
Catch ex2 As IOException
MsgBox("Error")
End Try
Next
This will search all the kinects, try to start them, and if an ApplicationException
is thrown, then it moves onto the next kinect.