I'm trying to write a remote control application which should allow a user to control a pc with a wireless device. It should be possible to use the device for example as game controller. I've got the advice to create a virtual device but I couldn't find any information on how to do that. What possibilities do I have to do that in Java or .Net?
It's going to be hard. The idea of a "virtual device" is that most Operating Systems don't talk directly to the hardware. They talk to device drivers. A "virtual device" describes what happens when a device driver claims there's hardware, yet none is physically present.
Now, you don't actually need a virtual device. You have real hardware. You can write a real device driver for a real device. You'd need the UMDF (User Mode Driver Framework) for that, which defines a COM interface for device drivers, and write a .NET application implementing that COM interface.
I guess you are talking about a virtual device driver.
With Java there is absolutely no way to do that. There has been some speculation that in UMDF (User mode driver framework) it might be possible to use .Net to develop that, but I never saw any concrete approach. So this is likely purely academic.
So the answer is likely you have no possiblilities to develop it in C# or Java.
If the device itself is programmable (a game controler most likely isn't) you could use standard networking methods to interface between the device and the computer. In that case using .Net or Java should not be a problem.