Visual Basic.NET - Saber si hay un joystick conectado

 
Vista:
sin imagen de perfil
Val: 33
Ha aumentado su posición en 2 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Saber si hay un joystick conectado

Publicado por Carlos (21 intervenciones) el 27/05/2021 11:27:29
Hola a tod@s:

Estoy desarrollando un programa en el que manejo el mouse con un joystick. Funciona bien pero el problema lo tengo cuando no hay ningún joystick conectado. El mouse se descontrola yéndose a la esquina superior izquierda de la pantalla. Estoy intentando solucionarlo mediante un timer con el siguiente código de testero (luego codificaría las acciones oportunas. El código es el siguiente:

Declaro la API y la estructura :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Declare Function joyGetPosEx Lib "winmm.dll" (ByVal uJoyID As Integer, ByRef pji As JOYINFOEX) As Integer
 
    <StructLayout(LayoutKind.Sequential)>
    Public Structure JOYINFOEX
        Public dwSize As Integer
        Public dwFlags As Integer
        Public dwXpos As Integer
        Public dwYpos As Integer
        Public dwZpos As Integer
        Public dwRpos As Integer
        Public dwUpos As Integer
        Public dwVpos As Integer
        Public dwButtons As Integer
        Public dwButtonNumber As Integer
        Public dwPOV As Integer
        Public dwReserved1 As Integer
        Public dwReserved2 As Integer
    End Structure

Y en éste timer es donde intento sin éxito saber si el joystick está o no conectado, pero siempre me da no encontrado..

No sé cómo puedo averiguar si hay algún joystick conectado o no?

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub TimerHayJostick_Tick(sender As Object, e As EventArgs) Handles TimerHayJostick.Tick
        Call joyGetPosEx(0, myjoyEX)
        Dim cap As JOYCAPS
        'JOYINFOEX
        cj += 1
        Dim x = joyGetDevCaps(0, cap, Len(cap))
        If x = 0 Then
            Label41.Text = cj & "Jostick encontrado" & x
        Else
            Label41.Text = cj & "Jostick no encontrado" & x
        End If
    End Sub

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder