arduino mega and a computer with a c# app

Hello there i want to build a C# app that uses one or more Arduino mega's connected to the windows pc over usb or ethernet, i want the Arduino to just have buttons linked to it and the actual c# app listen for the key press of each key, so for instance i have 20 buttons (about what i need) each button will have an id that will be about 4 digits long. each code would be unique from the last. the idea is that the button is pressed on the prototype board connected to the Arduino and then that sends data to the c# app which from there would receive the data from the Arduino and translate it to key presses.

Back ground on what i'm using it for. Im trying to build a desk for a lighting system the cost of the desk for the software is about £5000+ for a basic model. the software allows you to use macros to trigger things my plan is to use Arduino to trigger uncommon keys that standard keyboards don't have until you start holding down specific keys for instance keys like this (ç,∫,~,µ,Ω,≈) this would allow us to use the custom controller for cheaper.

Thanks Daniel

That should be perfectly feasible. However I don't see any question?

If you have only 20 buttons just assign a character to each one so you only need to transmit a single character to represent a button press.

My philosophy is to keep the Arduino code as simple as possible and do all the heavy lifting on the PC.

I don't know C# but this Python-Arduino demo may be of interest. The general approach will apply in any language

...R