Maustasten und Tastatur abfragen (per Subclassing)



'Maustasten und Tastatur abfragen (per Subclassing)

Beitrag, 16.07.2007 00:44: ;createCode() 'Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt: 'Maustasten und Tastatur abfragen (per Subclassing) 'von Frank Abbing 'Probiert mal die Maustasten aus und drückt ein paar Tasten. 'Diese Code basiert auf Andreas Miethe's Vorarbeit. Auf seiner XProfan-Seite findet ihr 'tiefer gehende Subclassing-Sources. $H Windows.ph $H Messages.ph Def Hiword(1) And(&(1)>>16,$Ffff) Def Loword(1) And(&(1),$Ffff) Declare Ende&,Button&,Oldwindowproc&,Text$ Proc Windowproc     Parameters Wnd&, Msg&, Wparam&, Lparam&     If Msg& = ~Wm_close        ~Postquitmessage(0)'Programm-Ende     Endif     Text$="Controlhandle: "+Str$(Wnd&)+"    "    ~Textout(%Hdc,0,20,Addr(Text$),Len(Text$))    Text$="Message: "+Str$(Msg&)+"    "    ~Textout(%Hdc,0,40,Addr(Text$),Len(Text$))    Text$="WParam: "+Str$(Wparam&)+"    "    ~Textout(%Hdc,0,60,Addr(Text$),Len(Text$))    Text$="LParam: "+Str$(Lparam&)+"    "    ~Textout(%Hdc,0,80,Addr(Text$),Len(Text$))     If Msg& = ~Wm_lbuttondown        Text$="Linker Knopf wird gerade gedrückt."       ~Textout(%Hdc,0,120,Addr(Text$),Len(Text$))     Elseif Msg& = ~Wm_lbuttonup        Text$="Linker Knopf wurde losgelassen. "       ~Textout(%Hdc,0,120,Addr(Text$),Len(Text$))     Elseif Msg& = ~Wm_rbuttondown        Text$="Rechter Knopf wird gerade gedrückt."       ~Textout(%Hdc,0,140,Addr(Text$),Len(Text$))     Elseif Msg& = ~Wm_rbuttonup        Text$="Rechter Knopf wurde losgelassen. "       ~Textout(%Hdc,0,140,Addr(Text$),Len(Text$))     Elseif Msg& = ~Wm_keydown        Text$="Taste mit Tastencode "+Str$(Wparam&)+" wird gerade gedrückt. "       ~Textout(%Hdc,0,160,Addr(Text$),Len(Text$))     Elseif Msg& = ~Wm_keyup        Text$="                          "       ~Textout(%Hdc,0,160,Addr(Text$),Len(Text$))     Endif     'alle Messages die nicht behandelt wurden an die Original-Prozedur weiterleiten    Return ~Callwindowproc(Oldwindowproc&,Wnd&, Msg&, Wparam&, Lparam&) Endproc Set("FastMode",1) Cls 'Window-Prozedur austauschen und die Original-Prozedur in 'OldWindowproc sichern Oldwindowproc& = ~Setwindowlong(%Hwnd,~Gwl_wndproc, Procaddr(Windowproc,4)) Whilenot Ende&     Waitinput Endwhile


Dies ist die Offlinevariante vom Thread [Maustasten und Tastatur abfragen (per Subclassing)].

Valid CSS!

©2006 XProfan.Com