1+ <?php
2+
3+ use nativehook \GlobalScreen ;
4+ use nativehook \keyboard \NativeKeyEvent ;
5+ use nativehook \keyboard \NativeKeyListener ;
6+ use nativehook \mouse \NativeMouseEvent ;
7+ use nativehook \mouse \NativeMouseListener ;
8+ use nativehook \mouse \NativeMouseMotionListener ;
9+ use nativehook \mouse \NativeMouseWheelEvent ;
10+ use nativehook \mouse \NativeMouseWheelListener ;
11+ use php \lang \System ;
12+
13+ class EventListener implements NativeKeyListener, NativeMouseListener, NativeMouseMotionListener, NativeMouseWheelListener{
14+ public function nativeKeyReleased (NativeKeyEvent $ event ){
15+ var_dump (__FUNCTION__ ."- {$ event ->keyText }" );
16+ }
17+
18+ public function nativeKeyPressed (NativeKeyEvent $ event ){
19+ var_dump (__FUNCTION__ ."- {$ event ->keyText }" );
20+ }
21+
22+ public function nativeKeyTyped (NativeKeyEvent $ event ){
23+ var_dump (__FUNCTION__ ."- {$ event ->keyChar }" );
24+ }
25+
26+ public function nativeMouseClicked (NativeMouseEvent $ event ){
27+ var_dump (__FUNCTION__ ." - x: {$ event ->x }, y: {$ event ->x }, button: {$ event ->button }" );
28+ }
29+
30+ public function nativeMousePressed (NativeMouseEvent $ event ){
31+ var_dump (__FUNCTION__ ." - x: {$ event ->x }, y: {$ event ->x }, button: {$ event ->button }" );
32+ }
33+
34+ public function nativeMouseReleased (NativeMouseEvent $ event ){
35+ var_dump (__FUNCTION__ ." - x: {$ event ->x }, y: {$ event ->x }, button: {$ event ->button }" );
36+ }
37+
38+ public function nativeMouseMoved (NativeMouseEvent $ event ){
39+ var_dump (__FUNCTION__ ." - x: {$ event ->x }, y: {$ event ->x }, button: {$ event ->button }" );
40+ }
41+
42+ public function nativeMouseDragged (NativeMouseEvent $ event ){
43+ var_dump (__FUNCTION__ ." - x: {$ event ->x }, y: {$ event ->x }, button: {$ event ->button }" );
44+ }
45+
46+ public function nativeMouseWheelMoved (NativeMouseWheelEvent $ event ){
47+ var_dump (__FUNCTION__ ." - scrollType: {$ event ->scrollType }, scrollAmount: {$ event ->scrollAmount }, wheelRotation: {$ event ->wheelRotation }" );
48+ }
49+ }
50+
51+ class ExitListener implements NativeKeyListener{
52+ public function nativeKeyPressed (NativeKeyEvent $ event ){
53+ if ($ event ->keyText == 'Escape ' ){
54+ GlobalScreen::unregisterNativeHook ();
55+ System::halt (0 );
56+ }
57+ }
58+
59+ public function nativeKeyReleased (NativeKeyEvent $ event ){
60+
61+ }
62+
63+ public function nativeKeyTyped (NativeKeyEvent $ event ){
64+
65+ }
66+ }
67+
68+ $ listener = new EventListener ();
69+ GlobalScreen::addNativeKeyListener ($ listener );
70+ GlobalScreen::addNativeMouseListener ($ listener );
71+ GlobalScreen::addNativeMouseMotionListener ($ listener );
72+ GlobalScreen::addNativeMouseWheelListener ($ listener );
73+
74+ GlobalScreen::addNativeKeyListener (new ExitListener ());
75+
76+ GlobalScreen::registerNativeHook ();
77+
78+ echo "Press Escape to exit \n" ;
0 commit comments