aboutsummaryrefslogtreecommitdiffstats
path: root/mouse_action.py
diff options
context:
space:
mode:
authornia <b01902104@linux19.csie.ntu.edu.tw>2014-07-11 20:49:12 +0800
committernia <b01902104@linux19.csie.ntu.edu.tw>2014-07-11 20:49:12 +0800
commit84cfff24ab73228a91b3f0a8661fa3df0b6578ca (patch)
tree4c5e8326db74fb41e0e1d19d5da40c7024d82f13 /mouse_action.py
parent54557c7ec51b6238f4b9996eb7e306140a9266b6 (diff)
downloadmyoparasite-84cfff24ab73228a91b3f0a8661fa3df0b6578ca.tar.gz
myoparasite-84cfff24ab73228a91b3f0a8661fa3df0b6578ca.tar.zst
myoparasite-84cfff24ab73228a91b3f0a8661fa3df0b6578ca.zip
init
Diffstat (limited to 'mouse_action.py')
-rwxr-xr-xmouse_action.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/mouse_action.py b/mouse_action.py
new file mode 100755
index 0000000..bcd48a1
--- /dev/null
+++ b/mouse_action.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python2
+
+from ctypes import *
+
+libxdo = None
+xdo_handle = None
+xdo_func_new = None
+xdo_func_mouse_move = None
+xdo_func_mouse_click = None
+
+class xdo_t(Structure):
+ pass
+
+def init_libxdo():
+ global libxdo
+ global xdo_func_new
+ global xdo_func_mouse_move
+ global xdo_func_mouse_click
+
+ try:
+ libxdo = cdll.LoadLibrary('libxdo.so.3')
+ xdo_func_new = getattr(libxdo, 'xdo_new')
+ xdo_func_mouse_move = getattr(libxdo, 'xdo_move_mouse_relative')
+ xdo_func_mouse_click = getattr(libxdo, 'xdo_click_window')
+ return True
+ except OSError:
+ pass
+
+ try:
+ libxdo = cdll.LoadLibrary('libxdo.so.2')
+ xdo_func_new = getattr(libxdo, 'xdo_new')
+ xdo_func_mouse_move = getattr(libxdo, 'xdo_mousemove_relative')
+ xdo_func_mouse_click = getattr(libxdo, 'xdo_click')
+ return True
+ except OSError:
+ pass
+
+ return False
+
+
+def init_func_args():
+ xdo_func_new.argtypes = [c_char_p]
+ xdo_func_new.restype = POINTER(xdo_t)
+ xdo_func_mouse_move.argtypes = [POINTER(xdo_t), c_int, c_int]
+ xdo_func_mouse_move.restype = c_int
+ xdo_func_mouse_click.argtypes = [POINTER(xdo_t), c_long, c_int]
+ xdo_func_mouse_click.restype = c_int
+
+def init_xdo_handle():
+ global xdo_handle
+ xdo_handle = xdo_func_new(None)
+ if xdo_handle == None:
+ return False
+ return True
+
+def mouse_action(action):
+ if libxdo == None:
+ if not init_libxdo():
+ raise 'Cannot load library: libxdo'
+ else:
+ init_func_args()
+
+ if xdo_handle == None:
+ if not init_xdo_handle():
+ raise 'Cannot create object: xdo_t'
+
+ if action >= 1 and action <= 5:
+ xdo_func_mouse_click(xdo_handle, 0, action)
+
+
+if __name__ == '__main__':
+ import sys
+ mouse_action(int(sys.argv[1]))