Question: I've seen some examples of using Windows.Gaming.Input in C++ console apps but is there a way to access it in a non-UWP C# project as well?

Thanks,

Answer: 
I've managed to do this by doing the following:

1. Make sure VisualStudio is not running.
2. Open your project `*.csproj` file in a text editor, e.g. notepad.
3. Add `<TargetPlatformVersion>10.0</TargetPlatformVersion>` to the `*.csproj` file. You can put it after the `<TargetFrameworkVersion/>` entry.
4. Open you project in Visual Studio.
5. Add the `System.Runtime.WindowsRuntime` reference (I used v4.7.0, newest stable version at the time) with nuget, or manually browse for the DLL file on your system.
6. In Solution/Project Explorer, right-click References -> Add Reference...
7. You should be able to see "Universal Windows" on the side as an option now.
8. Add the `Windows.Gaming` reference.
9. In your `*.cs` files, you'll want to use the reference with `using Windows.Gaming.Input;`. If the reference is not found, try including it outside the namespace. Or you can also try `using global::Windows.Gaming.Input;` instead.
> 
> but is there a way to access it in C# with UWP as well?
> 
> 
> 

Sure, you could access `Windows.Gaming.Input` with C# within UWP platform. For example,

```
var controllers = RawGameController.RawGameControllers;
 foreach (var item in controllers)
 {
    var name =  item.DisplayName;
 }

```

Unfortunately, there is not c# project could be referred, if you do want to c# project, please feel free post your requirement with Windows Feed Backhub app.