| |
|
|
p.specht
| Quasi-simultane Bearbeitung mehrerer Aufgaben (XProfan-11). So etwas geht naturalmente heute viel besser mit Threads. Aber damals ...
' Include-Pfad anpassen!
$H C:\Users\user\XProfan\XProfan11\INCLUDE\Windows.ph
Window 0,0-%maxx,%maxy
Cls
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
declare x%,y%,z%,LM%,FLT%,tm!,ti!,k&
k&=1000
Cls
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 %key=2 OR %key=27:Break:endif
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
' Lebende Schleife
x%=%Pos:y%=%csrlin' Merk dir wo du warst
color 10,3:Locate 2,1:print x%,y%;" ";' und gib HIER kurz mal was aus
color 14,1:Locate 1,1:print %mouseX;":";%mouseY;" "
color 15,3:Locate 1,61:print Date$(0),Time$(0);".";left$(Time$(1),2);
color 15,9:Locate 3,1:ti!=val(time$(1)):print ti!-tm!:tm!=ti!
color 0,15:Locate y%,x%' Restore, wo du grad warst
print "#";' Beliebige weiterlaufende Aktion
' die selbst nicht allzu lange dauert
case %csrlin>26:CLS
Endwhile
UserMessages 0
KillTimer
End
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 05.06.2021 ▲ |
|
|
|