Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 128
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 186
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 34, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 69, Antworten: 6
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18.09.2009, 22:21   #1 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard Maustasten sicher abfragen

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.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 18.09.2009, 22:27   #2 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
Standard

SUPERST! Danke!
__________________
Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,XPSE,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB2:USB3
p. specht ist gerade online   Mit Zitat antworten
Alt 23.09.2009, 00:04   #3 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
Standard

Hab mir erlaubt, die Beiträge von Frank und Dieter zu kombinieren und um die "Lebende Schleife" zu ergänzen . Funktionierte im Interpreter-Modus auf Anhieb total einwandfrei.

'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)
p. specht ist gerade online   Mit Zitat antworten
Alt 23.09.2009, 15:20   #4 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von p. specht Beitrag anzeigen
Weiterer Punkt auf der ToDo-Liste: Checken, OB überhaupt eine Mitteltaste bzw. ein Mausrad vorhanden ist... Weiss jemand Rat?
Das sollte doch nicht so schwierig sein.

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
Andreas Miethe ist offline   Mit Zitat antworten
Alt 23.09.2009, 16:02   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zitat:
Das sollte doch nicht so schwierig sein.
Vielleicht doch.

Bei meinem Trackball wird ein Mausrad angeblich erkannt, zudem 5 Maustasten...
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 23.09.2009, 16:18   #6 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

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_MOUSEHORIZONTALWHEELPRESENT=91
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)
Frabbing ist offline   Mit Zitat antworten
Alt 23.09.2009, 17:12   #7 (Direktlink)
Unregistriert
Gast
 
Beiträge: n/a
Standard

API sagt was Treiber gibt und 5 Mäuse mit 1 Treiber -> ungenau.
  Mit Zitat antworten
Alt 23.09.2009, 18:17   #8 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von Frabbing Beitrag anzeigen
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...
Dashabe ich auch gelesen Im PSDK. Da stand aber auch

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)
Andreas Miethe ist offline   Mit Zitat antworten
Alt 23.09.2009, 18:30   #9 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Die API scheint also keine sichere Methode zu sein.

Zitat:
API sagt was Treiber gibt und 5 Mäuse mit 1 Treiber -> ungenau.
5 Mäuse? Gemeint sind aber Maustasten. Ich hab 4, aber die API meldet 5.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (23.09.2009 um 18:33 Uhr)
Frabbing ist offline   Mit Zitat antworten
Alt 23.09.2009, 19:07   #10 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
Standard

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)
p. specht ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 23.09.2009, 20:40   #11 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

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
Andreas Miethe ist offline   Mit Zitat antworten
Alt 23.09.2009, 21:02   #12 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Zitat:
2. Frage an die Generaliät: Woher kommen die Doppelevents beim Compilieren?
Gibts eine Methode, sie elegant loszuwerden? Einen zusätzlichen Api-Aufruf vielleicht?
Das liegt vielleicht am Timer, ich selber hab keine Doppelevents beobachtet.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 23.09.2009, 21:32   #13 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
Standard

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
P.S.: Achtung beim Maustasten-Zählen: Auch ein Mausrad kann man klicken!
__________________
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)
p. specht ist gerade online   Mit Zitat antworten
Alt 23.09.2009, 21:35   #14 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Mausrad kann ich nicht testen. Hab - wie gesagt - keines.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 23.09.2009, 21:54   #15 (Direktlink)
Dauergast
 
Benutzerbild von p. specht
 
Registriert seit: 06.02.2009
Ort: Wien, Österreich
Beiträge: 1.082
Standard

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
p. specht ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ä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



Alle Zeitangaben in WEZ +2. Es ist jetzt 12:02 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2