Regarding question 2 - yes, this is correct. Using the API to connect to ALM does NOT open the UI.
Regarding question 1 - you need to find the test case that you want to update. What info do you have to identify the test case? You said you want to update the status in the Test Lab. Do you have the ID of the Test Instance? The name/ID of the Test Set that contains the Test Instance?
What info you have to identify the Test Instance dictates the methods you need to use ultimately to access it through the API and subsequently update it. It may help you to look at the API object that represents a Test Instance - namely the TSTest object. The API documentation provides lots of sample code for doing a variety of tasks. If you look at the API documentation, that might give you pointers.
Regarding question 1 - you need to find the test case that you want to update. What info do you have to identify the test case? You said you want to update the status in the Test Lab. Do you have the ID of the Test Instance? The name/ID of the Test Set that contains the Test Instance?
What info you have to identify the Test Instance dictates the methods you need to use ultimately to access it through the API and subsequently update it. It may help you to look at the API object that represents a Test Instance - namely the TSTest object. The API documentation provides lots of sample code for doing a variety of tasks. If you look at the API documentation, that might give you pointers.