PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Joystick auslesen in VB.NET



Joystick
20.11.2004, 19:39
Ich möchte in VB.NET ein Programm schreiben um meinen Joystick per USB auszulesen.
Ich bestitze den SideWinder Precision 2 von MS.

Kann mir jemand dazu einen nützlichen Hinweis oder sogar einen Quelltext dazu geben.

cht
20.11.2004, 21:12
Guck doch mal ins Windows SDK, da steht das alles drin. Ich selbst programmiere mit Delphi, da heisst die einzubindende Unit mmsystem.pas, genauso wie der passende C++-Header mmsystem.h
mfG

cht

20.11.2004, 21:25
Danke für die Antwort

Werde mal reinschauen

Trabukh
20.11.2004, 22:22
http://www.activevb.de/tipps/vb6tipps/tipp0459.html
http://www.activevb.de/tipps/vb6tipps/tipp0524.html

Beides recht gut verständlich. Ist aber nicht ganz für VB.Net gedacht, aber lässt sich eigentlich problemlos übertragen.

Gruß, Trabukh

cht
21.11.2004, 16:04
Die sollten funktionieren, der Code auf diesen Seiten ist nämlich schlicht und einfach eine Headerübersetzung des Joystick-relevanten Teils von mmsystem.h (sah so aus, keine Ahnung obs vollständig und richtig ist). Wozu du welche dieser Routinen brauchst sagt dir dann das SDK.
mfG

cht

24.11.2004, 19:35
Ok, das mit dem auslesen dieses Programms funktioniert jetzt.
(http://www.activevb.de/tipps/vb6tipps/tipp0459.html )
Ich habe das ganze noch auf eine 3. Achse ausgeweitet.
Habe dazu nur im Programm bei X bzw. Y Achsen Befehlen das gleiche nochmal mit "Z" hingeschrieben, was auch einwandfei mit der Schubkontrolle auf dem Stick läuft.

Nun möchte ich aber die 4. Achse auf meinen Stick (Seitenruder) auch noch miteinbinden. Probierte dazu einfach noch eine neue Variabel nach dem gleichen Muster wie bei X,Y und Z einzubinden. Funktioniert aber leider nicht.

Hätte mir jemand noch einen Tipp, wie man die 4.Achse auch ansprechen kann???

cht
24.11.2004, 21:19
Es gibt ausser JOYINFO noch eine JOYINFOEX Struktur. Die ist so aufgebaut:


typedef struct joyinfoex_tag {
DWORD dwSize;
DWORD dwFlags;
DWORD dwXpos;
DWORD dwYpos;
DWORD dwZpos;
DWORD dwRpos;
DWORD dwUpos;
DWORD dwVpos;
DWORD dwButtons;
DWORD dwButtonNumber;
DWORD dwPOV;
DWORD dwReserved1;
DWORD dwReserved2;
} JOYINFOEX;

R ist dabei das Seitenruder, U und V sind weitere Achsen, falls dein Joystick noch mehr hat.
Die passende Auslesefunktion ist:
MMRESULT joyGetPosEx(UINT uJoyID, LPJOYINFOEX pji);
Genaueres steht -wie gesagt- im WinSDK.

mfG

cht

Houddy
02.01.2005, 15:39
hi

nur mal eine dumme frage wo find ich den dieses WinSDK?
bin neu :-/

mgf Houddy