![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Code:
' Maustasten sicher abfragen (w) Frank Abbing
'
Cls
UserMessages $201,$204,$207,$202,$205,$208
While 1
WaitInput
Case %key=2:Break
If %umessage=$201
Print "Links gedrückt."
ElseIf %umessage=$204
Print "Rechts gedrückt."
ElseIf %umessage=$207
Print "Mitte gedrückt."
ElseIf %umessage=$202
Print "Links losgelassen."
ElseIf %umessage=$205
Print "Rechts losgelassen."
ElseIf %umessage=$208
Print "Mitte losgelassen."
EndIf
Endwhile
End
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#2 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
|
SUPERST! Danke!
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
|
#3 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
|
Hab mir erlaubt, die Beiträge von Frank und Dieter zu kombinieren und um die "Lebende Schleife" zu ergänzen
'Known Issues' dieser Beta-Version: Compiliert, wird die Abfrage so schnell, daß sowohl prellende Tasten Mehrfachevents auslösen, als auch jeder weitere Programmstart (Vermutung) zusätzliche Eventhandlers gleicher Funktionsnummer installiert. Folge: Es werden Doppel-Events empfangen! Derzeit einzige Abhilfe: In der Compilerversion Software-Entprellung durch Prüfung auf doppelte Events. Anmerkung: Frank´s Routine im Beitrag vorher funktioniert dagegen auch compiliert einwandfrei. Weiterer Punkt auf der ToDo-Liste: Checken, OB überhaupt eine Mitteltaste bzw. ein Mausrad vorhanden ist... Weiss jemand Rat? Code:
windowtitle "TTMS - The Total Mouse Solution - Version 1 beta"
' Aus den Teilen: Maustasten sicher abfragen (w) Frank Abbing,
' und: Mausrad hoch und runter von Dieter Zornow
' zusammengestellt und um "Lebende Schleife" (R) sowie
' um sauberes Beenden(TM) ergänzt.
Cls
declare x%,y%
UserMessages $201,$204,$207,$202,$205,$208,$20A
SetTimer 10
While 1
WaitInput
Case %key=2:Break
If %umessage=$201
Print "Links gedrückt."
ElseIf %umessage=$204
Print "Rechts gedrückt."
ElseIf %umessage=$207
Print "Mitte gedrückt."
ElseIf %umessage=$202
Print "Links losgelassen."
ElseIf %umessage=$205
Print "Rechts losgelassen."
ElseIf %umessage=$208
Print "Mitte losgelassen."
ElseIf %UMESSAGE = $20A
IF HIWORD(&UWPARAM)=120
PRINT "Rad hoch "
ELSE
PRINT "Rad runter "
ENDIF
EndIf
' Lebende Schleife
x%=%Pos:y%=%csrlin ' Merk dir wo du warst
Locate 1,2:print x%,y%;" "; ' und gib HIER kurz mal was aus
Locate 2,2:print %mouseX;":";%mouseY;" "
locate y%,x% ' Restore, wo du grad warst
print "#"; ' Beliebige andere, quasi parallel laufende Aktion
Endwhile
UserMessages 0
KillTimer
End
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 Geändert von p. specht (23.09.2009 um 08:40 Uhr) |
|
|
|
|
|
#4 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Zitat:
Code:
$H Windows.ph cls If ~GetSystemMetrics(19) Print "Mausrad vorhanden" Else Print "keine Mausrad" Endif Print ~GetSystemMetrics(43);" Tasten an der Maus installiert" Waitinput
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
|
|
#5 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
Bei meinem Trackball wird ein Mausrad angeblich erkannt, zudem 5 Maustasten...
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
|
#6 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Meiner Meinung nach müsste dein Code eher so lauten:
Code:
$H Windows.ph Declare x& Cls If ~GetSystemMetrics(91) Inc x& Print "Horizontales Mausrad vorhanden" EndIf If ~GetSystemMetrics(75) Inc x& Print "Vertikales Mausrad vorhanden" EndIf IfNot x& Print "Kein Mausrad vorhanden." EndIf Print ~GetSystemMetrics(43);" Tasten an der Maus installiert" WaitInput End SM_MOUSEWHEELPRESENT=75 SM_MOUSEPRESENT ist nur eine Abfrage, ob eine Maus existiert. MS schreib dazu aber, dass diese fast immer existent ist, und sei es nur virtuell... Bei den Tasten baut die API bei mir aber Mist. Mein Trackback hat die beiden normalen Buttons links und rechts, und zwei Zusatzbuttons. Vier, nicht fünf. Absolute Sicherheit gibt es also nicht.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. Geändert von Frabbing (23.09.2009 um 16:27 Uhr) |
|
|
|
|
|
#7 (Direktlink) |
|
Gast
Beiträge: n/a
|
API sagt was Treiber gibt und 5 Mäuse mit 1 Treiber -> ungenau.
|
|
|
|
#8 (Direktlink) | |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Zitat:
SM_MOUSEWHEELPRESENT 19 Dann ist da wohl ein Fehler drin. Wie dem auch sei, ich habe kein Mausrad, bekomme aber trotzdem angezeigt, dass eins vorhanden ist.
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher Geändert von Andreas Miethe (23.09.2009 um 18:21 Uhr) |
|
|
|
|
|
|
#9 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Die API scheint also keine sichere Methode zu sein.
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. Geändert von Frabbing (23.09.2009 um 18:33 Uhr) |
|
|
|
|
|
|
#10 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
|
1. Kann man das vielleicht aufdröseln in folgende Fälle:
Funkmäuse? USB-Mäuse? Mausport-Mäuse? Serielle Mäuse? Trackballs? Was habt ihr denn? 2. Frage an die Generaliät: Woher kommen die Doppelevents beim Compilieren? Gibts eine Methode, sie elegant loszuwerden? Einen zusätzlichen Api-Aufruf vielleicht? Gruss
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 Geändert von p. specht (23.09.2009 um 19:30 Uhr) |
|
|
|
|
|
|
#11 (Direktlink) |
|
Stammuser
![]() Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
|
Ich habe ein Touchpad am Laptop. Definitiv kein Rad. Die Radfunktion wird aber wohl emuliert über zwei sensitive Scroll-Leisten am Touchpad.
Kannst Du damit was anfangen ? Jedenfalls funktioniert die Abfrage in Deinem o. Programm. Scrolldown und Scrollup wird angezeigt.
__________________
Gruss Andreas ______________________ http://www.ampsoft.eu Profan 3.3 - XProfanX2 Windows 95,98,ME,2000,XP Vista - Windows 7 32 / 64 Bit ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher |
|
|
|
|
|
#12 (Direktlink) | |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Zitat:
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
|
#13 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
|
CRAZY MOUSE 1.1 beta
Es ist FAST geschafft: Die Interpreterversion verhält sich nun sehr ähnlich wie die Compilerversion. Bekannter Schönheitsfehler: In der Compilerversion kommt trotz ausdrücklichem 'Debounce' in Profancode VOR dem nächsten "Rad hoch" noch einmal ein "Rad runter" - Schleierhaft, wieso. Mausrad-Anwendungen in Profan sind aber in der Regel nicht so kritisch. Code:
$H Windows.ph
Def IsMouseSwapped(0) ~GetSystemMetrics(~SM_SWAPBUTTON)
'0 = Rechtmaus/1 = Linksmaus
windowtitle "Crazy Mouse - Version 1.0 beta"
' Aus den Teilen: IsMouseSwapped() von David Strutz,
' Maustasten sicher abfragen (w) von Frank Abbing,
' Mausrad hoch und runter von Dieter Zornow
' CheckIfMousewheel/MiddleKey von Andreas Miethe samt
' Franks improvement betr. Horizontal-Mausrad/Trackball,
' zusammengestellt und um "Lebende Schleife", "Debounce"
' und "Sauberes Beenden"(TM) ergänzt von P. Specht 2009-09
Cls
declare x%,y%,z%,LM%,FLT%
UserMessages $201,$204,$207,$202,$205,$208,$20A
if IsMouseSwapped()=0
print " Rechtshänder-Maus, keine Tastenvertauschung"
else
print " Linkshänder-Maus, Tasten R-L-vertauscht"
endif
z%=0
If ~GetSystemMetrics(91)
Inc z%
Print " Horizontales Mausrad vorhanden"
EndIf
If ~GetSystemMetrics(75)
Inc z%
Print " Vertikales Mausrad vorhanden"
EndIf
IfNot z%
Print " Kein Mausrad vorhanden."
EndIf
z%=~GetSystemMetrics(43)
print " ";z%;" Tasten an der Maus installiert"
flt%=2
SetTimer 1
While 1
WaitInput
If %UMESSAGE = $20A
IF HIWORD(&UWPARAM)=120
PRINT " Rad hoch ":FLT%=2
ELSE
if flt% : flt%=abs(flt%)-1
elseif flt%=0: PRINT " Rad runter "
endif
ENDIF
ENDIF
If %umessage=$201
ifnot LM%=1:Print " Links gedrückt. ":LM%=1:endif
ElseIf %umessage=$204
ifnot LM%=4:Print " Rechts gedrückt. ":LM%=4:endif
ElseIf %umessage=$207
ifnot LM%=7:Print " Mitte gedrückt. ":LM%=7:endif
ElseIf %umessage=$202
ifnot LM%=2:Print " Links losgelassen.":LM%=2:endif
ElseIf %umessage=$205
ifnot LM%=5:Print " Rechts losgelassen.":LM%=5:endif
ElseIf %umessage=$208
ifnot LM%=8:Print " Mitte losgelassen. ":LM%=8:endif
EndIf
if %key=2 OR %key=27:Break:endif
' Lebende Schleife
x%=%Pos:y%=%csrlin ' Merk dir wo du warst
Locate 1,2:print x%,y%;" "; ' und gib HIER kurz mal was aus
Locate 2,2:print %mouseX;":";%mouseY;" "
locate y%,x% ' Restore, wo du grad warst
print "#"; ' Beliebige weiterlaufende Aktion
' die selbst nicht allzu lange dauert
Endwhile
UserMessages 0
KillTimer
End
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 Geändert von p. specht (23.09.2009 um 21:52 Uhr) |
|
|
|
|
|
#14 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Mausrad kann ich nicht testen. Hab - wie gesagt - keines.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#15 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
|
Kann man nicht die Trackballs selbst zusätzlich auch klicken?
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3 |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Multimediatastaturtasten abfragen | Jac de Lad | XProfan | 9 | 18.08.2009 23:24 |
| access abfragen | Bitti | Office-Anwendungen | 0 | 23.08.2006 15:38 |
| VB.Net Tastatur abfragen | Jochen-H | Visual Basic, Visual Basic.NET | 12 | 07.06.2006 21:23 |
| Tastatur mit Maustasten steuern | Farn. | Software - Allgemein | 0 | 22.12.2005 11:38 |
| Sicher oder nicht Sicher? | Rising-Sun | Allgemein | 11 | 26.11.2003 19:00 |