I'd go for a slightly different strategy: if you use networking instead of USB (you can go for Cable or WiFi), you'll save yourself a lot of time and headaches. This works in two components:
- Application running on the Pi that monitors your switch and forwards the data over the network connection to your PC
- Application running on your PC that catches the data from the network connection and sends key-press events to your application
For the application running on your PC:
It should listen on a TCP/IP port for requests (HTTP or your own protocol). Working with GET requests will also make things simpler; i.e. "192.168.1.10:5000/command?switch=1". msdn.microsoft.com/en-us/library/system.net.httplistener(v=vs.110).aspx
It should forward the keystrokes to your application. See: msdn.microsoft.com/en-us/library/ms171548(v=vs.110).aspx for an example of how to do something like this
Ok, so that will give you a way of controlling (and confirming that you can control) the flight simulator running on your PC. You can test that it works by starting up your simulator, opening up a web browser on your Pi and typing in that URL above (changing the IP, Port and other details as needed).
For your Pi, you'll need to write an application that: 1. Monitors GPIO 2. Makes http requests to your PC This looks useful: www.cl.cam.ac.uk/projects/raspberrypi/tutorials/robot/buttons_and_switches/
I'm not sure what your background/experience is: we're touching on quite a few different disciplines and platforms here, but at least this should give you a good start.