Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pythoncom, pyHook
- import time
- import ctypes
- import csv
- with open('settings.csv') as f:
- d = dict(filter(None, csv.reader(f)))
- # C struct redefinitions
- PUL = ctypes.POINTER(ctypes.c_ulong)
- class KeyBdInput(ctypes.Structure):
- _fields_ = [("wVk", ctypes.c_ushort),
- ("wScan", ctypes.c_ushort),
- ("dwFlags", ctypes.c_ulong),
- ("time", ctypes.c_ulong),
- ("dwExtraInfo", PUL)]
- class HardwareInput(ctypes.Structure):
- _fields_ = [("uMsg", ctypes.c_ulong),
- ("wParamL", ctypes.c_short),
- ("wParamH", ctypes.c_ushort)]
- class MouseInput(ctypes.Structure):
- _fields_ = [("dx", ctypes.c_long),
- ("dy", ctypes.c_long),
- ("mouseData", ctypes.c_ulong),
- ("dwFlags", ctypes.c_ulong),
- ("time",ctypes.c_ulong),
- ("dwExtraInfo", PUL)]
- class Input_I(ctypes.Union):
- _fields_ = [("ki", KeyBdInput),
- ("mi", MouseInput),
- ("hi", HardwareInput)]
- class Input(ctypes.Structure):
- _fields_ = [("type", ctypes.c_ulong),
- ("ii", Input_I)]
- # Actuals Functions
- def PressKey(hexKeyCode):
- extra = ctypes.c_ulong(0)
- ii_ = Input_I()
- ii_.ki = KeyBdInput( 0, hexKeyCode, 0x0008, 0, ctypes.pointer(extra) )
- x = Input( ctypes.c_ulong(1), ii_ )
- ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x))
- def ReleaseKey(hexKeyCode):
- extra = ctypes.c_ulong(0)
- ii_ = Input_I()
- ii_.ki = KeyBdInput( 0, hexKeyCode, 0x0008 | 0x0002, 0, ctypes.pointer(extra) )
- x = Input( ctypes.c_ulong(1), ii_ )
- ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x))
- running = False
- def dragMouse():
- global d
- duration = float(d['duration'])
- sleep = float(d['sleep'])
- y = int(d['yspeed'])
- x = int(d['xspeed'])
- iwait = float(d['initialwait'])
- global running
- if (running):
- return
- print('Launching...')
- running = True
- then = time.time() + duration
- PressKey(0x22)
- time.sleep(iwait)
- ctypes.windll.user32.mouse_event(1, 0, -10000, 0,0)
- while(time.time() < then):
- ctypes.windll.user32.mouse_event(1, x, -y, 0,0)
- time.sleep(sleep)
- ReleaseKey(0x22)
- running = False
- print('Done launching...')
- def OnKeyboardEvent(event):
- key = event.Key
- if (key=='Up'):
- dragMouse()
- # return True to pass the event to other handlers
- return True
- # create a hook manager
- hm = pyHook.HookManager()
- # watch for all mouse events
- hm.KeyDown = OnKeyboardEvent
- # set the hook
- hm.HookKeyboard()
- # wait forever
- pythoncom.PumpMessages()
Add Comment
Please, Sign In to add comment