コード例 #1
0
ファイル: keyboard.py プロジェクト: F-Secure/murphy
    def down(self, key, override=None):
        '''
        Holds down the given key
        '''
        if key != key.lower() and len(key) == 1:
            use_shift = True
            self.down('left shift')
        else:
            use_shift = False

        key_code = self._get_scancode(key)

        if override:
            key_code = override

        if key in self._extended_scancodes:
            is_extended = KEYEVENTF_EXTENDEDKEY
        else:
            is_extended = 0

        input_arr = Input * 1
        extra = c_ulong(0)
        ii_ = InputUnion()
        ii_.keyb_inp = KeyBdInput(0, key_code,
                                  is_extended + KEYEVENTF_SCANCODE, 0,
                                  pointer(extra))
        inputs = input_arr((1, ii_))
        windll.user32.SendInput(1, pointer(inputs), sizeof(inputs[0]))

        if use_shift:
            self.up('left shift')
コード例 #2
0
ファイル: keyboard.py プロジェクト: F-Secure/murphy
    def up(self, key, override=None):
        '''
        Releases the given key
        '''
        key_code = self._get_scancode(key)

        if override:
            key_code = override

        if key in self._extended_scancodes:
            is_extended = KEYEVENTF_EXTENDEDKEY
        else:
            is_extended = 0
        input_arr = Input * 1
        extra = c_ulong(0)
        ii_ = InputUnion()
        ii_.keyb_inp = KeyBdInput(
            0, key_code, is_extended + KEYEVENTF_KEYUP + KEYEVENTF_SCANCODE, 0,
            pointer(extra))

        inputs = input_arr((1, ii_))
        windll.user32.SendInput(1, pointer(inputs), sizeof(inputs[0]))