#python #tkinter
#python #tkinter
Вопрос:
Я попытался создать базовый кейлоггер, используя bind
систему tkinter. Код работает, но я бы хотел, чтобы он работал, даже если фрейм tkinter не сфокусирован. Система работает так, что при нажатии определенной клавиши событие знает, какая клавиша нажата, и добавляет ее в список. Код работает очень хорошо.
Вот мой код:
import tkinter as tk
root = tk.Tk()
root.geometry("300x200")
listeOfKeys = []
def a(event):
listeOfKeys.append("a")
root.bind('a', a)
def b(event):
listeOfKeys.append("b")
root.bind('b', b)
def c(event):
listeOfKeys.append("c")
root.bind('c', c)
def d(event):
listeOfKeys.append("d")
root.bind('d', d)
def e(event):
listeOfKeys.append("e")
root.bind('e', e)
def f(event):
listeOfKeys.append("f")
root.bind('f', f)
def g(event):
listeOfKeys.append("g")
root.bind('g', g)
def h(event):
listeOfKeys.append("h")
root.bind('h', h)
def i(event):
listeOfKeys.append("i")
root.bind('i', i)
def j(event):
listeOfKeys.append("j")
root.bind('j', j)
def k(event):
listeOfKeys.append("k")
root.bind('k', k)
def l(event):
listeOfKeys.append("l")
root.bind('l', l)
def m(event):
listeOfKeys.append("m")
root.bind('m', m)
def n(event):
listeOfKeys.append("n")
root.bind('n', n)
def o(event):
listeOfKeys.append("o")
root.bind('o', o)
def p(event):
listeOfKeys.append("p")
root.bind('p', p)
def q(event):
listeOfKeys.append("q")
root.bind('q', q)
def r(event):
listeOfKeys.append("r")
root.bind('r', r)
def s(event):
listeOfKeys.append("s")
root.bind('s', s)
def t(event):
listeOfKeys.append("t")
root.bind('t', t)
def u(event):
listeOfKeys.append("u")
root.bind('u', u)
def v(event):
listeOfKeys.append("v")
root.bind('v', v)
def w(event):
listeOfKeys.append("w")
root.bind('w', w)
def x(event):
listeOfKeys.append("x")
root.bind('x', x)
def y(event):
listeOfKeys.append("y")
root.bind('y', y)
def z(event):
listeOfKeys.append("z")
root.bind('z', z)
label = tk.Label(root, text="")
label.pack()
root.mainloop()
print(listeOfKeys)
...
Ответ №1:
Вы спрашиваете о «глобальном перехвате», что невозможно с tkinter. Вы могли бы попробовать что-то вроде keyboard
модуля.
Комментарии:
1. да, но смысл этого фрагмента кода в том, чтобы иметь возможность создавать кейлоггер с модулем, который вам не нужен
pip install <arandommodule>
2. Хорошо, переоцените свою жизнь и разбогатейте, создав что-то менее злое, где вам не нужно скрывать свою работу.
Ответ №2:
Код работает, но я бы хотел, чтобы он работал, даже если фрейм tkinter не сфокусирован.
Вы не можете. Tkinter этого не поддерживает. Привязки работают только для виджетов tkinter и только для виджетов с фокусом клавиатуры. Вам нужно будет найти что-то специфичное для платформы, над которой вы работаете.
Комментарии:
1. Я знаю. Я просто спрашиваю, знает ли кто-нибудь модуль, который фиксирует нажатия клавиш и не требует
pip install
…2. @gnaboo: в вашем вопросе не запрашивается рекомендация модуля, а запрос рекомендаций библиотеки не по теме для Stackoverflow.