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