Hi! Here's a quick guide for stubborn people like me who don't use XNA but still want to incorporate an XBox controller into their application or game. I was surprised at how easy it was.

Step 1. Download a package off of NuGet that contains XInput. The package I found was called SharpDX.

Step 2. Import it into the file that will be recieving data. Imports SharpDX.XInput

Step 3. Use this handy function:

vb Code:
  1. Private Function CheckController(PlayerIndex As UserIndex) As String
  2.  
  3.     If Not New Controller(PlayerIndex).IsConnected Then Return "Disconnected" ' GamePad is not connected.
  4.  
  5.     Dim GPS As Gamepad = New Controller(PlayerIndex).GetState.Gamepad ' GamePad State
  6.  
  7.     ' Registers a whole bunch of data about the current state of the controller.
  8.     Dim Str As String = $"Left Thumb: {GPS.LeftThumbX}, {GPS.LeftThumbY}{vbNewLine}" &
  9.     $"Right Thumb: {GPS.RightThumbX}, {GPS.RightThumbY}{vbNewLine}" &
  10.     $"LTrigger: {GPS.LeftTrigger} RTrigger: {GPS.RightTrigger}{vbNewLine}" &
  11.     $"Buttons Currently Pressed: {GPS.Buttons.ToString}"
  12.  
  13.     ' Checks if the A button is pressed.
  14.     If GPS.Buttons.HasFlag(GPS.Buttons.A) Then
  15.         ' Do something when A is pressed.
  16.     Else
  17.         ' Do something when A is not pressed.
  18.     End If
  19.     ' Copy that if-block as many times as needed to cover all the buttons used in the game.
  20.  
  21.     Return Str
  22. End Function

And it's done! Now, you'd probably want to put CheckController(0) in some kind of timed loop so it constantly updates, and copy/paste that if-statement to check for more buttons that are pressed, but hey, I'm not going to tell you how to live your life.

I hope this helped! Thanks,
~Nic