Beh,personalmente ti consiglierei di usare il c++...credo ke sia il linguaggio ke ti permetta di avere una maggiore flessibilità,soprattutto usando gli oggetti.naturalmente va bene anke il java visto ke è molto simile al primo.In quest'ultimo caso avrai una maggiore portabilità tra sistemi operativi diversi,ma dal tuo messaggio credo di aver capito ke nn lo conosci bene quanto il c++.
Per quanto riguarda lo svolgimento del programma dovresti sapere come vengono indirizzate le porte usb e come viaggiano i dati in modo da mettere in comunicazione diretta le due applicazioni.naturalmente presta attenzione a far girare programmi del genere su xp perchè potrebbero richiedere l'accesso come administrator.Per iniziare ti consiglio:
http://www.embedded.com/2000/0003/0003ia2.htm
http://www.lvr.com/usbfaq.htm
sono solo dei siti ke ti potranno dare un'idea generale.Potrai trovare altre informazioni utili al sito ufficiale:
http://www.usb.org/developers
una volta ke sai come funziona il tutto potrai cominciare a stendere una bozza del programma
spero di esserti stato utile...per ogni dubbio posta pure qui.cercherò di aiutarti come posso
buon lavoro