123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- '''
- (ok)
- How to listen Key combination?
- Here is a modified version that also prints a message when you release that key combination!
- '''
- from pynput.keyboard import Listener, Key
- class MockButton:
- def __init__(self, keys: list, cb_fn):
- self.cb_fn = cb_fn
- self.combination = set(keys)
- # self.currently_pressed = set()
- self.currently_pressed = None
- self.is_pressed = False
- listener = Listener(on_press=self._on_press, on_release=self._on_release)
- listener.start()
- def _on_press(self, key):
- if key in self.combination:
- # self.currently_pressed.add(key)
- self.currently_pressed = key
- self.is_pressed = True
- # print('pressed!')
- self.cb_fn(0)
- def _on_release(self, key):
- try:
- self.currently_pressed = None
- if self.is_pressed and self.currently_pressed == None:
- self.is_pressed = False
- # print('released!')
- self.cb_fn(1)
- except KeyError:
- pass
- if __name__ == '__main__':
- keys = [Key.alt, Key.ctrl]
- cb_fn = lambda x: print(x)
- btn = MockButton(keys, cb_fn)
- input()
|