# !/usr/bin/env python # -*- coding: utf-8 -*- from pynput import keyboard from pynput.keyboard import Key, Controller def on_press(key): try: # print('alphanumeric key {0} pressed'.format(key.char)) pass except AttributeError: # print('special key {0} pressed'.format(key)) pass def on_release(key): global VirguleCnt, InputType global keytemp global VirguleCnt try: # print('alphanumeric key {0} pressed'.format(key.char)) if key.char == '/': VirguleCnt += 1 # print(VirguleCnt) if ((VirguleCnt == 2) & (InputType == 0)): print("连续监测到// + 英文状态,切换到中文") InputType = 1 keytemp.press(Key.shift) keytemp.release(Key.shift) else: VirguleCnt = 0 except AttributeError: # print('special key {0} pressed'.format(key)) VirguleCnt = 0 if key == keyboard.Key.esc: # ESC,停止监听 return False # elif key == keyboard.Key.shift: # 模拟和手动shift,都会发生执行此段程序 # VirguleCnt = 10 elif key == keyboard.Key.enter: # 换行 if (InputType == 1): # 中文 print("换行 + 中文状态,切换到英文") InputType = 0 keytemp.press(Key.shift) keytemp.release(Key.shift) else: pass # 写程序注释无缝超顺滑切换的python小程序 if __name__ == "__main__": VirguleCnt = 0 InputType = 0 # 默认初始为英文输入状态 keytemp = Controller() with keyboard.Listener(on_press=on_press, on_release=on_release) as listener: listener.join()