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

Python 3 a PyHook - KeyboardSwitch

Object Storage Arubacloud
0 głosów
672 wizyt
pytanie zadane 25 października 2018 w Python przez BlvckFox Gaduła (4,240 p.)

Witam, napisałem taki oto program:
 

import  time, datetime, os, sys 
import  subprocess, base64,platform
import pythoncom, pyHook, win32api, win32gui, win32con

def OnKeyboardEvent(event):
	print ("MessageName:", event.MessageName)
	print ("Message:", event.Message)
	print ("Time:", event.Time)
	print ("Window:", event.Window)
	print ("WindowName:", event.WindowName)
	print ("Ascii:", event.Ascii)
	print ("Key:", event.Key)
	print ("KeyID:", event.KeyID)
	print ("ScanCode:", event.ScanCode)
	print ("Extended:", event.Extended)
	print ("Injected:", event.Injected)
	print ("Alt:", event.Alt)
	print ("Transition:", event.Transition)
	print ("------")
	return True
def log():
	state = True
	hm = pyHook.HookManager()
	hm.KeyDown = OnKeyboardEvent
	hm.HookKeyboard()
	pythoncom.PumpMessages()
while True:
	log()

który po wciśnięciu klawisza z klawiatury pokazuje informacje na jego temat. Program działa gdy są uruchomione inne programy, np. gdy wpisujemy coś w pasku URL i działa poprawnie ale gdy np.chce coś napisać w notatniku to się crashuje i wywala taki błąd: 

 TypeError: KeyboardSwitch() missing 8 required positional arguments: 'msg', 'vk_code', 'scan_code', 'ascii', 'flags', 'time', 'hwnd', and 'win_name'

Logi z konsoli:
 

MessageName: key down
Message: 256
Time: 2181421
Window: 459886
WindowName: test
Ascii: 116
Key: T
KeyID: 84
ScanCode: 20
Extended: 0
Injected: 0
Alt: 0
Transition: 0
------
TypeError: KeyboardSwitch() missing 8 required positional arguments: 'msg', 'vk_code', 'scan_code', 'ascii', 'flags', 'time', 'hwnd', and 'win_name'

Sprawdziłem w internecie  problem i błąd może wynikać z wersji PyHooka gdy ja używam python3.
Odpowiedzią jest https://github.com/Answeror/pyhook_py3k ale tutaj mam kolejny problem, nigdy nie programowałem w pythonie, nie wiem jak mógłbym "zupdateować" pyhooka, instrukcja jest tylko do MSVC9. Ja używam tylko SublimeText3.

1 odpowiedź

0 głosów
odpowiedź 25 października 2018 przez RafalS VIP (122,820 p.)
wybrane 18 listopada 2018 przez BlvckFox
 
Najlepsza

instrukcja jest tylko do MSVC9. Ja używam tylko SublimeText3.

Edytor tutaj nie ma nic do rzeczy. Programy pythonowe odpalasz zawsze 'python plik.py', to że czasem jest od tego przycisk to jedynie ułatwienie ale pod spodem zawsze siedzi to samo polecenie, które uruchamia interpreter pythona i przesyła mu plik do wykonania. Interpreter pythona ma skonfigurowane ścieżki gdzie ma szukać modułów - python path. Polecenie  'pip install .' wrzuci Ci moduł do odpowiedniego folderu, więc będzie on dostępny niezależnie od edytora.

Jeśli zależy Ci na winapi to zainstaluj pakiet do pythona 3, jeśli natomiast zależy Ci jedynie na klawiaturze to polecam jakiś nowszy pakiet:

https://pypi.org/project/keyboard/

https://pypi.org/project/pynput/

komentarz 25 października 2018 przez BlvckFox Gaduła (4,240 p.)

Tak, odpalam programy pythonowe przez cmd "python x.py". Zależy mi na naprawie tego błędu lub "złapanie" go, tak żeby sam program się nie crashował. Nie wiem jak pobierać wartości wpisywane w klawiature przez keyboard, dlatego używam Pyhooka

1
komentarz 25 października 2018 przez RafalS VIP (122,820 p.)
Jeśli potrzebujesz jedynie podsłuchiwać klawiature to "monitoring the keyboar" - https://pypi.org/project/pynput/

Jest gotowy przykład do skopiowania.

Instalacja pakietu: "pip install pynput"

Podobne pytania

0 głosów
0 odpowiedzi 1,240 wizyt
pytanie zadane 10 stycznia 2019 w Python przez Kuba Jakubowski Gaduła (3,550 p.)
0 głosów
1 odpowiedź 257 wizyt
pytanie zadane 29 grudnia 2018 w Python przez Eliro Stary wyjadacz (12,160 p.)
0 głosów
0 odpowiedzi 368 wizyt
pytanie zadane 26 czerwca 2017 w Python przez dziadek Początkujący (440 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...