Esta entrada está dedicada para enseñar cómo se puede detectar los controles de XBOX inalámbricos conectados a un receptor inalámbrico (PC Wireless Gaming Receiver) con C# .Net sin utilizar XNA.
Para poder detectar los controles haremos uso de una librería externa de nombre SlimDX, esta librería la podemos bajar por medio de Nuget o de su pagina http://slimdx.org/. SlimDX es una librería Open Source que nos permite construir programas usando DirectX, y una de sus funciones es detectar los Joystick.
También utilizaremos la clase GamepadState que ha hecho Renaud Bédard y podemos descargarla de su sitio, él ya nos facilita lo necesario para detectar los botones del control, palancas etc. Igual anexo la clase en esta liga, solo tienen que copiar y pegar el código en una clase del proyecto de Visual Studio.
Ahora que ya tenemos la librería SlimDX y la clase GamepadState solo nos queda comenzar a utilizar y detectar el control de la siguiente manera:
using SlimDX.XInput;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ControlXBox
{
class Program
{
static void Main(string[] args)
{
//creamos una instancia GamepadState y le enviamos la constante de control numero 1
GamepadState control = new GamepadState(UserIndex.One);
//ahora detectamos si el controll esta conectado
if (control.Connected)
{
Console.WriteLine("El control esta conectado");
//creamos un ciclo infinito solo para detectar el control cada que presionemos un boton
while(true){
//detectamos si se realizo una modificación, se presiono un botón o se movio una palanca etc.
control.Update();
//imprimimos el boton presionado en consola
Console.WriteLine(control.Controller.GetState().Gamepad.Buttons.ToString());
}
}
else
{
//Si el control no esta conectado mostramos mensaje de que no esta conectado :(
Console.WriteLine("El control NO esta conectado");
Console.ReadLine();
}
}
}
}
Cree un proyecto de consola de Visual Studio y aquí plasmo el resultado en video para que puedan ver que funciona bien:
Cualquier duda en los comentarios pueden preguntar.

