Saber si hay un joystick conectado
Publicado por Carlos (23 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 :
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?
Saludos
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


0