1 import win32api 2 import win32con 3 import win32clipboard as w 4 5 class KeyboardKeys(): 6 """Analog keyboard keys class""" 7 VK_CODE = { 8 'backspace': 0x08, 9 'tab': 0x09, 10 'clear': 0x0c, 11 'enter': 0x0D, 12 'shift': 0x10, 13 'ctrl': 0x11, 14 'alt': 0x12, 15 'pause': 0x13, 16 'caps_lock': 0x14, 17 'esc': 0x1B, 18 'spacebar': 0x20, 19 'page_up': 0x21, 20 'page_down': 0x22, 21 'end': 0x23, 22 'home': 0x24, 23 'left_arrow': 0x25, 24 'up_arrow': 0x26, 25 'right_arrow': 0x27, 26 'down_arrow': 0x28, 27 'select': 0x29, 28 'print': 0x2A, 29 'execute': 0x2B, 30 'print_screen': 0x2C, 31 'ins': 0x2D, 32 'del': 0x2E, 33 'help': 0x2F, 34 '0': 0x30, 35 '1': 0x31, 36 '2': 0x32, 37 '3': 0x33, 38 '4': 0x34, 39 '5': 0x35, 40 '6': 0x36, 41 '7': 0x37, 42 '8': 0x38, 43 '9': 0x39, 44 'a': 0x41, 45 'b': 0x42, 46 'c': 0x43, 47 'd': 0x44, 48 'e': 0x45, 49 'f': 0x46, 50 'g': 0x47, 51 'h': 0x48, 52 'i': 0x49, 53 'j': 0x4A, 54 'k': 0x4B, 55 'l': 0x4C, 56 'm': 0x4D, 57 'n': 0x4E, 58 'o': 0x4F, 59 'p': 0x50, 60 'q': 0x51, 61 'r': 0x52, 62 's': 0x53, 63 't': 0x54, 64 'u': 0x55, 65 'v': 0x56, 66 'w': 0x57, 67 'x': 0x58, 68 'y': 0x59, 69 'z': 0x5A, 70 'numpad_0': 0x60, 71 'numpad_1': 0x61, 72 'numpad_2': 0x62, 73 'numpad_3': 0x63, 74 'numpad_4': 0x64, 75 'numpad_5': 0x65, 76 'numpad_6': 0x66, 77 'numpad_7': 0x67, 78 'numpad_8': 0x68, 79 'numpad_9': 0x69, 80 'multiply_key': 0x6A, 81 'add_key': 0x6B, 82 'separator_key': 0x6C, 83 'subtract_key': 0x6D, 84 'decimal_key': 0x6E, 85 'divide_key': 0x6F, 86 'F1': 0X70, 87 'F2': 0X71, 88 'F3': 0X72, 89 'F4': 0X73, 90 'F5': 0X74, 91 'F6': 0X75, 92 'F7': 0X76, 93 'F8': 0X77, 94 'F9': 0X78, 95 'F10': 0X79, 96 'F11': 0X7A, 97 'F12': 0X7B, 98 'F13': 0X7C, 99 'F14': 0X7D, 100 'F15': 0X7E, 101 'F16': 0X7F, 102 'F17': 0X80, 103 'F18': 0X81, 104 'F19': 0X82, 105 'F20': 0X83, 106 'F21': 0X84, 107 'F22': 0X85, 108 'F23': 0X86, 109 'F24': 0X87, 110 'num_lock': 0x90, 111 'scroll_lock': 0x91, 112 'left_shift': 0xA0, 113 'right_shift': 0xA1, 114 'left_control': 0xA2, 115 'right_control':0xA3, 116 'left_menu': 0xA4, 117 'right_menu': 0xA5, 118 'browser_back':0xA6, 119 'browser_forward': 0xA7, 120 'browser_refresh': 0xA8, 121 'browser_stop': 0xA9, 122 'browser_search': 0xAA, 123 'browser_favorites': 0xAB, 124 'browser_start_and_home': 0xAC, 125 'voleme_mute': 0xAD, 126 'voleme_down': 0xAE, 127 'voleme_up': 0xAF, 128 'next_track': 0xB1, 129 'stop_media': 0xB2, 130 'play/pause_media': 0xB3, 131 'start_mail': 0xB4, 132 'select_media': 0xB5, 133 'start_application_1': 0xB6, 134 'start_application_2': 0xB7, 135 'attn_key': 0xF6, 136 'crsel_key': 0xF7, 137 'exsel_key': 0xF8, 138 'play_key': 0xFA, 139 'zoom_key': 0xFB, 140 'ckear_key': 0xFE, 141 '+': 0xBB, 142 ',': 0xBC, 143 '-': 0xBD, 144 '.': 0xBE, 145 '/': 0xBF, 146 '`': 0xC0, 147 ';': 0xBA, 148 '[': 0xDB, 149 '\': 0xDC, 150 ']': 0xDD, 151 "'": 0xDE 152 } 153 154 @staticmethod 155 def keyDown(keyName): 156 """按下按键""" 157 win32api.keybd_event(KeyboardKeys.VK_CODE[keyName], 0, 0, 0) 158 159 @staticmethod 160 def keyUp(keyName): 161 """释放按键""" 162 win32api.keybd_event(KeyboardKeys.VK_CODE[keyName], 0,win32con.KEYEVENTF_KEYUP, 0) 163 164 @staticmethod 165 def oneKey(key): 166 """模拟单个按键,按下并释放""" 167 KeyboardKeys.keyDown(key) 168 KeyboardKeys.keyUp(key) 169 170 @staticmethod 171 def twoKeys(key1,key2): 172 """模拟两个按键""" 173 KeyboardKeys.keyDown(key1) 174 KeyboardKeys.keyDown(key2) 175 KeyboardKeys.keyUp(key2) 176 KeyboardKeys.keyUp(key1) 177 178 179 180 181 if __name__ == "__main__": 182 test = KeyboardKeys() 183 test.setText(u'my name is tyw') 184 print(test.getText().decode('gbk').encode('utf-8'))