Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Joystick em Visual Studio 2010
14-12-2010, 23:20
Mensagem: #2
RE: Joystick em Visual Studio 2010
malta, agora é que preciso mesmo da vossa ajuda!

vou postar aqui o que já tenho feito, mas isto está a dar um erro que eu não sei resolver.
eu retirei isto de um outro forum, de alguém que queria fazer o mesmo que eu...
o erro que dá é um "FileLoadException".
será que alguém podia dar uma vista de olhos nisto a sério? ficaria mesmo muito agradecido (mesmo mesmo mesmo...)



Imports System
Imports System.Windows.Forms
Imports Microsoft.DirectX.DirectInput
Imports Microsoft.DirectX
Public Class Form1

Private applicationDevice As Device = Nothing
Public Shared state As New JoystickState

Public Function InitDirectInput() As Boolean
Dim instance As DeviceInstance
For Each instance In Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly)
applicationDevice = New Device(instance.InstanceGuid)
Exit For
Next instance

applicationDevice.SetDataFormat(DeviceDataFormat.Joystick)
applicationDevice.SetCooperativeLevel(Me, CooperativeLevelFlags.Exclusive Or CooperativeLevelFlags.Foreground)
Dim d As DeviceObjectInstance
For Each d In applicationDevice.Objects
If 0 <> (d.ObjectId And CInt(DeviceObjectTypeFlags.Axis)) Then
applicationDevice.Properties.SetRange(ParameterHow.ById, d.ObjectId, New InputRange(-1000, +1000))
End If
Next d
Return True
End Function

Public Sub GetData()
If Nothing Is applicationDevice Then
Return
End If
Try
applicationDevice.Poll()
Catch inputex As InputException
If TypeOf inputex Is NotAcquiredException Or TypeOf inputex Is InputLostException Then
Try
applicationDevice.Acquire()
Catch
Return
End Try
End If
End Try
Try
state = applicationDevice.CurrentJoystickState

Catch
Return
End Try
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
InitDirectInput()
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
GetData() 'Joystick Position erfassen

Label1.Text = "Eixos: LX = " + state.X.ToString() _
& vbCrLf & " LY = " + state.Y.ToString _
& vbCrLf & " RX = " + state.Rz.ToString _
& vbCrLf & " RY = " + state.Z.ToString ' Anzeigen der Sticks

Label2.Text = "Botões : " _
& vbCrLf & state.GetButtons(0) _
& vbCrLf & state.GetButtons(1) _
& vbCrLf & state.GetButtons(2) _
& vbCrLf & state.GetButtons(3) _
& vbCrLf & state.GetButtons(4) _
& vbCrLf & state.GetButtons(5) _
& vbCrLf & state.GetButtons(6) _
& vbCrLf & state.GetButtons(7) _
& vbCrLf & state.GetButtons(8) _
& vbCrLf & state.GetButtons(9) _
& vbCrLf & state.GetButtons(10) _
& vbCrLf & state.GetButtons(11) _
& vbCrLf & state.GetButtons(12) _
& vbCrLf & state.GetButtons(13) _
& vbCrLf & state.GetButtons(14) _
& vbCrLf & state.GetButtons(15) ' Ausgabe der Tasten
'applicationDevice.SendForceFeedbackCommand(ForceFeedbackCommand.SetActuatorsOn)​
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Timer1.Enabled = False Then
Timer1.Enabled = True
Else
Timer1.Enabled = False
End If
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 100
End Sub

End Class
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
RE: Joystick em Visual Studio 2010 - Voncrux - 14-12-2010 23:20

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)