• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

with keyboard.GlobalHotKeys przekazywanie do funkjcji zmiennej

Aruba Cloud - Virtual Private Server VPS
+1 głos
199 wizyt
pytanie zadane 14 stycznia 2024 w Python przez mark162 Początkujący (410 p.)

jak przekazać do zmiennej klawisz naciśnięty ??

 

from pynput import keyboard

def activate(kays):

    if kays == 'a':
        print(f'kays a: {kays}')

    if kays == 'b':
        print(f'kays b: {kays}' )

def quit():
    h.stop()


with keyboard.GlobalHotKeys({
        'a': activate,
        'b': activate,
        '<ctrl>+c': quit}) as h:
    
    h.join()

 

2 odpowiedzi

0 głosów
odpowiedź 15 stycznia 2024 przez VBService Ekspert (256,600 p.)
wybrane 17 stycznia 2024 przez mark162
 
Najlepsza

Próbowałeś może użyć coś w tym stylu

from pynput import keyboard

def activate(key):
    print(f'Key pressed: {key}')

def quit():
    h.stop()

with keyboard.GlobalHotKeys({
        '<ctrl>+a': lambda: activate('a'),
        '<ctrl>+b': lambda: activate('b'),
        '<ctrl>+c': quit}) as h:
     h.join()

lub

from pynput import keyboard

def activate(key):
    print(f'Key pressed: {key}')

def quit():
    h.stop()

with keyboard.GlobalHotKeys({
        'a': lambda: activate('a'),
        'b': lambda: activate('b'),
        '<ctrl>+c': quit}) as h:
     h.join()

lub ewentualnie tak jak napisał @adrian17, użyj

zwykłego Listenera

komentarz 17 stycznia 2024 przez mark162 Początkujący (410 p.)
próbowałem tak ale błęda waliło, myślałem że się tak nie da ale okazało się że brakowalo słowa" lambda: "
komentarz 18 stycznia 2024 przez VBService Ekspert (256,600 p.)

AFAIK, lambda spełnia podobną funkcję jak np. anonimowa funkcja w javascript.

<button>Message 1</button>
<button>Message 2</button>
<button>Message 3</button>
<message></message>

<script>
  const btns = document.querySelectorAll('button');

  btns[0].addEventListener('click', showMessage('Message1'));
  btns[1].addEventListener('click', function() { showMessage('Message2'); });
  btns[2].addEventListener('click', () => { showMessage('Message3'); });

  function showMessage(message='') {
    document.querySelector('message').textContent = message;
  }
</script>

 

+1 głos
odpowiedź 14 stycznia 2024 przez adrian17 Mentor (352,580 p.)
Chyba coś pomieszałeś. Po prostu przekaż zadeklaruj osobną funkcję dla `a` i dla `b` i je przypisz jako osobne hotkeye.

Jak chcesz łapać dowolne klawisze z klawiatury i sprawdzać co jest wciśnięte, to w ogóle nie chcesz GlobalHotKeys, tylko zwykłego Listenera.

Zajrzyj do dokumentacji: https://pynput.readthedocs.io/en/latest/keyboard.html
komentarz 14 stycznia 2024 przez mark162 Początkujący (410 p.)
chciałem aby do funkcji: def activate(kays): był przekazany klawisz naciśnięty
komentarz 15 stycznia 2024 przez adrian17 Mentor (352,580 p.)
No... to moja odpowiedź na to odpowiada.

Podobne pytania

0 głosów
1 odpowiedź 418 wizyt
0 głosów
1 odpowiedź 172 wizyt
pytanie zadane 8 listopada 2020 w Python przez 12332112332121 Dyskutant (8,270 p.)
0 głosów
1 odpowiedź 544 wizyt
pytanie zadane 9 listopada 2020 w Python przez 12332112332121 Dyskutant (8,270 p.)

93,335 zapytań

142,330 odpowiedzi

322,416 komentarzy

62,669 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...