Vierte und fünfte Maustaste abfragen?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Krischan

Betreff: Vierte und fünfte Maustaste abfragen?

BeitragFr, Okt 28, 2005 11:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich frage mich, ob es mittels der Userlibs möglich ist, auch die vierte und fünfte Maustaste (z.B. an meiner Intellimouse, also die links und rechts an der Seite) abzufragen. Bei z.B. Enemy Territory geht das ja auch Smile Hat sich damit schon jemand beschäftigt?

user posted image

D2006

Administrator

BeitragFr, Okt 28, 2005 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hinweis:
Beiträge, die als "Wichtig" markiert sind und im jeweiligen SubForum oben zu finden sind, werden nicht aus Spaß ebenso markiert.
Die Pflicht eines jeden Users ist, denn Inhalt solcher Threads zu kennen. Genau wegen solchen Anfragen hier, habe ich z.B. diesen Thread als wichtig erklärt.

Hier soll man keine Fragen stellen. Das ist ein Archiv. Hier sucht man nach Antworten.
(Anmerkung: Der Thread war vorm verschieben im DLL Archiv)

~VERSCHOBEN~
Falsches Forum.

MfG
D2006
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Dante

BeitragFr, Okt 28, 2005 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
; GetMouse Example

While Not KeyHit(1)
button=GetMouse()
If button <> 0 Then
Print "You pressed mouse button #" + button
End If
Wend

Gibt der da was zurück?
 

Krischan

BeitragFr, Okt 28, 2005 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Bad-Rat,

leider nein. Irgendwie muss es aber gehen, hat keiner eine Idee?

@Mod: oops, hatte in der Hektik des Alltags den Sticky überlesen, werds mir fürs nächste mal aber merken.
 

Dreamora

BeitragFr, Okt 28, 2005 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitz unterstützt nur 3 Maustasten + Scrollfunktion des Rades.
Mehr Tasten sind meines wissens erst seit DX8 mit dem neuen GameDevice Handling möglich, das bis zu 32 Tasten akzeptiert.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Krischan

BeitragSa, Okt 29, 2005 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist mir klar, dass Blitz nur drei Tasten unterstützt, deshalb will ich ja über die API abfragen. Ich konnte bei MSDN lediglich einen Hinweis finden, dass es wohl möglich ist, habe aber keine Ahnung, wie ich das implementieren soll:

Zitat:
Beginning with Windows 2000, Microsoft supported the Microsoft IntelliMouse Explorer, which is a mouse with five buttons. In addition to the left, middle, and right buttons there are XBUTTON1 and XBUTTON2, which provide backward and forward navigation when using Microsoft Internet Explorer.

Gerade mit diesen "WM_APPCOMMANDs" kann ich gar nichts anfangen. Wie greift man denn darauf zurück?

Link zum MSDN-Eintrag
 

Krischan

BeitragSa, Okt 29, 2005 9:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Haha - ich habs (zumindest bei mir aufm Rechner) mit der Funktion "GetAsyncKeyState" hinbekommen:

BlitzBasic: [AUSKLAPPEN]
;User32.decls Anfang -------------------------------------------------------

;.lib \"user32.dll\"
;api_GetAsyncKeyState% (vKey%) : \"GetAsyncKeyState\"

;User32.decls Ende -------------------------------------------------------

Graphics 640,480,32,2

SetBuffer BackBuffer()

While Not KeyHit(1)

lmb=CatchMouse(1) ;linke Maustaste
rmb=CatchMouse(2) ;rechte Maustaste
mmb=Catchmouse(4) ;mittlere Maustaste
xmb1=Catchmouse(5) ;X-Button links
xmb2=Catchmouse(6) ;X-Button rechts

Cls
Text 0, 0,\"Maustasten-Demo über GetAsyncKeyState\"
Text 0,20,\"Linke Maustaste: \"+lmb
Text 0,30,\"Linke Maustaste: \"+rmb
Text 0,40,\"Mittlere Maustaste: \"+mmb
Text 0,50,\"Linke X-Maustaste: \"+xmb1
Text 0,60,\"Rechte X-Maustaste: \"+xmb2

Flip 0

Wend

End

;Mausbutton-Status lesen und durch 32768 geteilt zurückgeben
Function CatchMouse(x)

Return api_GetAsyncKeyState%(x)/$8000

End Function


Vielleicht könnt Ihr das mal auf Euren Kisten probieren, am Besten wäre es, wenn ihr auch andere Mäuse als die oben abgebildete habt. Vorher aber nicht vergessen, die Funktion als user32.decls im userlibs Verzeichnis einzubinden!

Welche virtuellen Tasten abfragbar sind verrät MSDN hier
 

#Reaper

Newsposter

BeitragSa, Okt 29, 2005 10:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, geht bei mir Smile

Btw...: für was isn dann die Nr.3, die du weggelassen hast?
Oder gibts die garnet? ^^

MfG
#Reaper
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

Krischan

BeitragSa, Okt 29, 2005 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
schau mal in den Link in meinem letzten Post, 3 wäre demnach CTRL-BREAK.
 

#Reaper

Newsposter

BeitragSa, Okt 29, 2005 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Aso,ok Wink
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

Dreamora

BeitragSa, Okt 29, 2005 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist eine extrem schlechte Idee!
Die Windows API ist nicht für echtzeitanwendung geeignet ... Microsoft hat nicht aus "Spass" die DirectInput API entwickelt ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Krischan

BeitragSo, Okt 30, 2005 9:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wenn Blitz "nur" DX7 benutzt und man die DirectInput API deshalb nicht abfragen kann bleibt ja im Moment keine andere Wahl, oder? Wichtig ist, was hinten rauskommt und das ist bei mir eine 1 statt einer 0. Unter welchen Umständen würde es denn nicht funktionieren?

SoNenTyp

BeitragSo, Okt 30, 2005 10:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktionieren würde es, aber halt nur sehr langsam.
Gruss Der Typ.

User posted image

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Okt 30, 2005 10:31
Antworten mit Zitat
Benutzer-Profile anzeigen
es ist langsam und geht auch nicht immer!
Auf einen meiner Rechnern geht es nicht!
[BB2D | BB3D | BB+]
 

Dreamora

BeitragSo, Okt 30, 2005 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal von der Tatsache abgesehen, dass viele garkeine 4. und 5. Maustaste haben und die Nutzung dieser Tasten insofern ohnehin für alle anderen über andere Tasten geregelt werden müsste ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Krischan

BeitragMo, Okt 31, 2005 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja es ging ja auch nur um die Machbarkeit. Natürlich sollte man das nur optional anbieten, z.B. beim Rollen eines Raumschiffs anstatt der Pfeiltasten, ich habe das bei meinem aktuellen Projekt eingebaut und es funzt sehr gut (allerdings gibt es dort nur eine Rückgabe, wenn der Mauszeiger innerhalb der Grafikdimensionen liegt). Wer keine 4./5. Taste hat benutzt eben die Pfeiltasten links/rechts. Finde ich wesentlich praktischer.

Und wenn ich das bei MSDN richtig verstanden habe ist das Schöne an dieser Variante, dass die Tasten abgefragt werden, egal mit was man die windowsseitig belegt hat:

Zitat:
However, it checks on the state of the physical mouse buttons, not on the logical mouse buttons that the physical buttons are mapped to


Maus 1/2/3 und Rad fragt man natürlich dann über die BB-internen Befehle ab.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group