Without wishing to complicate matters, it seems like for now it should be possible to combine the two separate methods described above to control your Hue lights, assuming you do actually have that command line program working properly.
1. Use the scrape command to get status information about your lights.So, if you were able to get the IP address etc. as per the instructions in the HUE REST API documentation, then you could get information about whether or not lights are on or off -- anything that is listed as a "get" command. If you have the ID numbers for your lights and know the proper URL, you can try the following to get feedback about whether a specific light is on or off:
<?xml version="1.0" encoding="utf-16"?>
<command id="266" name="Get status of light {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{1} = id number for the light. (Later you can make a payload xml file that associates ID numbers with friendly names, so that instead of saying the number of the light, you can say "bedroom light" or whatever.)

The first & second OSD.ShowText actions can be deleted. I've put them here just to show you what information is being returned. If you want to see the complete information that is being scraped from a given URL, change the 1st OSD.ShowText from 0 to 1. It should look like the documentation that they include on the Hue website (http://developers.meethue.com/1_lightsapi.html).">
<action>
<cmdType>Scrape</cmdType>
<cmdString>http://<bridge ip address>/api/<username>/lights/{1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<cmdString>{LastResult}</cmdString>
<cmdRepeat>0</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<cmdString>"on": (.*?),</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<cmdString>The results scraped from this URL say that "on" is "{Match.1}". Therefore:</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>{Match.1}&&true</ifParams>
<then>
<action>
<cmdType>OSD.AddText</cmdType>
<cmdString>Light {1} is on.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<cmdString>Light {1} is on.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.AddText</cmdType>
<cmdString>Light {1} is off.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<cmdString>Light {1} is off.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Get status of light</phrase>
<payloadRange>1,10</payloadRange>
</command>
2. Use your command line utility to try to change the state of your lights, as per the examples we provided earlier in the thread using the batch file etc. Those commands assume that you have already successfully used the command line interface thingee (without VC) to change the state of your lights. If that isn't working, then obviously adding VC to the mix is not going to help.
There are no guarantees, but in theory these solutions should work. That is the extent of the information or assistance that we can provide, since we don't have the hardware.
It's all hypothetical, based on the documentation that those sites have posted.
No doubt some experimentation, problem solving, and learning will be involved on your end. Hopefully you'll eventually have some fun results to share with other Hue owners here on the forum!