How do I pass a string to pynput. keyboard.Controller (). press ()?
Passed to press ()/release () keyboard.KeyCode.from_char (string), but I couldn't... if I need the code, here it is... with two comments, I indicated that I approximately need
from pynput import keyboard, mouse
from time import time, sleep
import keyboard as key
class Listener():
def __init__(self):
self.__log, self.__start_time = [], 0
self.__mListener = mouse.Listener(on_move=self.__on_move, on_click=self.__on_click, on_scroll=self.__on_scroll)
self.__kListener = keyboard.Listener(on_press=self.__on_press, on_release=self.__on_release)
def start(self):
self.__start_time = time()
self.__mListener.start()
self.__kListener.start()
def stop(self):
self.__kListener.stop()
self.__mListener.stop()
with open('log.txt', 'w') as ouf:
text = ''
for elem in self.__log:
text += f'{elem}\n'
ouf.write(text[:-1])
def get_log(self):
mlist = []
with open('log.txt') as inf:
for line in inf:
mlist.append(line.strip())
return mlist
def __on_move(self, x, y):
self.__log.append(f'{time() - self.__start_time} mouseOnMove {x} {y}')
def __on_click(self, x, y, button, pressed):
self.__log.append(f'{time() - self.__start_time} mouseOnClick {x} {y} {button} {pressed}')
def __on_scroll(self, x, y, dx, dy):
self.__log.append(f'{time() - self.__start_time} mouseOnScroll {x} {y} {dx} {dy}')
def __on_press(self, key):
self.__log.append(f'{time() - self.__start_time} keyboardOnPress {key}')
def __on_release(self, key):
self.__log.append(f'{time() - self.__start_time} keyboardOnRelease {key}')
control = keyboard.Controller()
this_time = 0
listener = Listener()
listener.start()
key.wait('enter')
listener.stop()
for item in listener.get_log():
mlist = item.split()
if mlist[1].startswith('keyboard'):
if mlist[1] == 'keyboardOnPress':
#control.press(mlist[2])
pass
elif mlist[1] == 'keyboardOnRelease':
#control.release(mlist[2])
pass
0
Author: AxeCameron, 2020-10-16