def OnKeyboardEvent(event): if event.Ascii == 5: os._exit(1) if event.Ascii != 0: if os.path.isfile('output.txt'): f = open('output.txt', 'r+') buffer = f.read() f.close() else: buffer = '' f = open('output.txt', 'w') keylogs = chr(event.Ascii) if event.Ascii == 8: keylogs = ' \'BACKSPACE\' ' elif event.Ascii == 13: keylogs = '\n' elif event.Ascii == 27: keylogs =' \'ESCAPE\' ' if pyHook.GetKeyState(pyHook.HookConstants.VKeyToID('VK_CONTROL')): keylogs = ' \'CTRL + ' + keylogs.upper() + '\' ' if pyHook.GetKeyState(pyHook.HookConstants.VKeyToID('VK_LSHIFT')) or \ pyHook.GetKeyState(pyHook.HookConstants.VKeyToID('VK_RSHIFT')): keylogs = keylogs.upper() #return False buffer += keylogs f.write(buffer) f.close()
def OnKeyboardEvent(self, event): #print("test") ctrl_pressed = pyHook.GetKeyState(pyHook.HookConstants.VKeyToID('VK_SHIFT')) if ctrl_pressed and pyHook.HookConstants.IDToName(event.KeyID) == 'P': # Try start clicker if self.clickerRestart: print("Shift+P pressed. Resuming") self.restart() self.process.start() self.clickerRestart = False self.clickerStatus = True elif not self.clickerStatus: print("Shift+P pressed. Resuming") self.process.start() self.clickerStatus = True if pyHook.HookConstants.IDToName(event.KeyID) == 'Return': if self.clickerStatus: print('Return pressed. Pausing') self.process.terminate() self.clickerStatus = False self.clickerRestart = True # return True to pass the event to other handlers return True
def resetKeyAndModState(self): for i in range(256): self._keyboard_state[i] = 0 ioHubKeyboardDevice._modifier_value = 0 for stateKeyID in [win32_vk.VK_SCROLL,win32_vk.VK_NUM_LOCK,win32_vk.VK_CAPITAL]: state = pyHook.GetKeyState(stateKeyID) if state: self._keyboard_state[stateKeyID]=state modKeyName = Keyboard._win32_modifier_mapping.get(stateKeyID, None) mod_value = KeyboardConstants._modifierCodes.getID(modKeyName) ioHubKeyboardDevice._modifier_value += mod_value
def _nativeEventCallback(self, event): if self.isReportingEvents(): notifiedTime = getTime() report_system_wide_events = self.getConfiguration().get( 'report_system_wide_events', True) if report_system_wide_events is False: pyglet_window_hnds = self._iohub_server._pyglet_window_hnds if len(pyglet_window_hnds ) > 0 and event.Window not in pyglet_window_hnds: return True event.Type = EventConstants.KEYBOARD_RELEASE if event.Message in [ pyHook.HookConstants.WM_KEYDOWN, pyHook.HookConstants.WM_SYSKEYDOWN ]: event.Type = EventConstants.KEYBOARD_PRESS self._last_callback_time = notifiedTime event.RepeatCount = 0 key_already_pressed = self._key_states.get(event.KeyID, None) if key_already_pressed and event.Type == EventConstants.KEYBOARD_PRESS: event.RepeatCount = key_already_pressed[1] + 1 if self._report_auto_repeats is False and event.RepeatCount > 0: return True event.Modifiers = 0 event.scroll_state = pyHook.GetKeyState(win32_vk.VK_SCROLL) event.num_state = pyHook.GetKeyState(win32_vk.VK_NUM_LOCK) event.cap_state = pyHook.GetKeyState(win32_vk.VK_CAPITAL) if self.getConfiguration().get('log_events_for_testing', False): self._addEventToTestLog(event) self._addNativeEventToBuffer((notifiedTime, event)) # pyHook require the callback to return True to inform the windows # low level hook functionality to pass the event on. return True
def OnMouseEventLD(event): #when the left button of the mouse is pressed. CTRL = '' SHIFT = '' #check if Shift key is down. if pyHook.GetKeyState( HookConstants.VKeyToID('VK_LSHIFT')) or pyHook.GetKeyState( HookConstants.VKeyToID('VK_RSHIFT')): SHIFT = 'Shift-' #check if Control key is down. if pyHook.GetKeyState( HookConstants.VKeyToID('VK_LCONTROL')) or pyHook.GetKeyState( HookConstants.VKeyToID('VK_RCONTROL')): CTRL = 'Ctr-' #write 2 screenshots to disk. if saveSS: global counter counter -= 1 imgname = '%.6d.bmp' % ( counter ) #the log for this image was logged while mouse was moving. bmp.SaveBitmapFile( memdc, save_path + 'imgs/' + imgname) #save an image before the mouse button is pressed. counter += 1 memdc.BitBlt((0, 0), (WIDTH, HEIGHT), srcdc, (0, 0), win32con.SRCCOPY) imgname = '%.6d.bmp' % (counter) bmp.SaveBitmapFile( memdc, save_path + 'imgs/' + imgname) #save an image when the mouse button is being pressed. counter += 1 else: imgname = '' #log this activity logger.info( str(event.Time) + ',' + imgname + ',' + str(event.Position[0]) + ',' + str(event.Position[1]) + ',' + 'press left' + ',' + CTRL + SHIFT) global pressL pressL = True return True
def on_keyboard_event(self, event): ''' This method is used in Windows only. It will get keyboard events and find the ones matching the global shortcut. ''' if event.Ascii == self.hotkey: for vk in self.virtual_keys: if not pyHook.GetKeyState(pyHook.HookConstants.VKeyToID(vk)): break else: self.activate() return False # Return True to pass the event to other handlers. return True
def OnKeyboardEvent(event): #Log a keyboard typing action f_, h_, mospos = win32gui.GetCursorInfo() global counter global memdc CTRL = '' SHIFT = '' #check if Shift key is down. if pyHook.GetKeyState( HookConstants.VKeyToID('VK_LSHIFT')) or pyHook.GetKeyState( HookConstants.VKeyToID('VK_RSHIFT')): SHIFT = 'Shift-' #check if Control key is down. if pyHook.GetKeyState( HookConstants.VKeyToID('VK_LCONTROL')) or pyHook.GetKeyState( HookConstants.VKeyToID('VK_RCONTROL')): CTRL = 'Ctr-' #if Shift+ESC are pressed together, end the logging session if (pyHook.GetKeyState(HookConstants.VKeyToID('VK_LSHIFT')) or pyHook.GetKeyState(HookConstants.VKeyToID('VK_RSHIFT')) ) and event.KeyID == 27: #esc(key#27) counter += 1 imgname = '%.6d.bmp' % (counter) bmp.SaveBitmapFile( memdc, save_path + 'imgs/' + imgname ) #save the last image before exit (screenshot when after everything is done) win32gui.ShowWindow(Minimize, win32con.SW_MAXIMIZE) win32api.PostThreadMessage(main_thread_id, win32con.WM_QUIT, 0, 0) #looping signal (Shift+Control+L) elif pyHook.GetKeyState( HookConstants.VKeyToID('VK_LSHIFT')) and pyHook.GetKeyState( HookConstants.VKeyToID('VK_LCONTROL')) and event.Key == 'L': if saveSS: imgname = '%.6d.bmp' % (counter) counter += 1 else: imgname = '' logger.info( str(event.Time) + ',' + imgname + ',' + str(mospos[0]) + ',' + str(mospos[1]) + ',' + 'no press' + ',' + 'Ctr-Shift-l') #looping signal (Shift+Control+pause/break) elif pyHook.GetKeyState( HookConstants.VKeyToID('VK_LSHIFT')) and pyHook.GetKeyState( HookConstants.VKeyToID( 'VK_LCONTROL')) and event.Key == 'Cancel': if saveSS: imgname = '%.6d.bmp' % (counter) counter += 1 else: imgname = '' logger.info( str(event.Time) + ',' + imgname + ',' + str(mospos[0]) + ',' + str(mospos[1]) + ',' + 'no press' + ',' + 'Ctr-Shift-Pause') #standby signal (Shift+Control+w or Shift+Control+PrtScr) elif pyHook.GetKeyState( HookConstants.VKeyToID('VK_LSHIFT')) and pyHook.GetKeyState( HookConstants.VKeyToID('VK_LCONTROL')) and ( event.Key == 'W' or event.Key == 'Snapshot'): if saveSS: memdc.BitBlt((0, 0), (WIDTH, HEIGHT), srcdc, (0, 0), win32con.SRCCOPY) #load the screenshot into memory imgname = '%.6d.bmp' % (counter) bmp.SaveBitmapFile(memdc, save_path + 'imgs/' + imgname) counter += 1 else: imgname = '' logger.info( str(event.Time) + ',' + imgname + ',' + str(mospos[0]) + ',' + str(mospos[1]) + ',' + 'no press' + ',' + 'Ctr-Shift-w') else: #while pressing other keys (a, b, ... etc ) if pressL: if saveSS: imgname = '%.6d.bmp' % (counter) counter += 1 else: imgname = '' logger.info( str(event.Time) + ',' + imgname + ',' + str(mospos[0]) + ',' + str(mospos[1]) + ',' + 'press left' + ',' + CTRL + SHIFT + event.Key) elif pressR: if saveSS: imgname = '%.6d.bmp' % (counter) counter += 1 else: imgname = '' logger.info( str(event.Time) + ',' + imgname + ',' + str(mospos[0]) + ',' + str(mospos[1]) + ',' + 'press right' + ',' + CTRL + SHIFT + event.Key) else: if saveSS: imgname = '%.6d.bmp' % (counter) counter += 1 else: imgname = '' logger.info( str(event.Time) + ',' + imgname + ',' + str(mospos[0]) + ',' + str(mospos[1]) + ',' + 'no press' + ',' + CTRL + SHIFT + event.Key) return True
def on_keyboard_event(event): # Clean up when escape is pressed if event.Key == 'Escape': # Load existing bot from given file with open(bot_file_path) as bot_file: bot = json.load(bot_file) # Merge newly created event_sequence with existing one bot['events'] += event_sequence # Open bot_file in write mode with open(bot_file_path, 'w') as bot_file: # Replace current bot in bot_file with new bot json.dump(bot, bot_file, indent=2) # Exit script exit(0) # If ctrl pressed if pyHook.GetKeyState(HookConstants.VKeyToID('VK_CONTROL')): # If prev was ctrl as well if event_sequence and event_sequence[-1]['type'] == 'keyboard' and \ event_sequence[-1]['key'] == 'ctrlleft': # If not this key is ctrl if not (event.Key == 'Lcontrol' or event.Key == 'Rcontrol'): # Append to prev entry's nextKeys list event_sequence[-1]['nextKeys'].append(event.Key.lower()) else: # Store this event with key as ctrl and nextKey as this key event_sequence.append({ 'type': 'keyboard', 'messageName': event.MessageName, 'time': event.Time, 'window': event.Window, 'windowName': event.WindowName, 'ascii': event.Ascii, 'key': 'ctrlleft', 'nextKeys': [] }) # Elif shift pressed elif pyHook.GetKeyState(HookConstants.VKeyToID('VK_SHIFT')): # If prev was shift as well if event_sequence and event_sequence[-1]['type'] == 'keyboard' and \ event_sequence[-1]['key'] == 'shiftleft': # If not this key is shift if not (event.Key == 'Lshift' or event.Key == 'Rshift'): # Append to prev entry's nextKeys list event_sequence[-1]['nextKeys'].append(event.Key.lower()) else: # Store this event with key as shift and nextKey as this key event_sequence.append({ 'type': 'keyboard', 'messageName': event.MessageName, 'time': event.Time, 'window': event.Window, 'windowName': event.WindowName, 'ascii': event.Ascii, 'key': 'shiftleft', 'nextKeys': [] }) # For non ctrl/shift long-press situations else: # Handle special keys event_sequence.append(handle_special_keys(event)) # Return True to pass the event to other handlers return True