¿Qué código Python se puede utilizar para controlar el teclado de otra computadora?
Python3, usa socket para comunicarse entre dos computadoras y usa el módulo python?pyautogui para implementar pulsaciones de teclas. Si no está en una red de área local, se requiere un servidor de red pública para el reenvío. Requiere entorno para instalar las dependencias del entorno: #?ubuntu
$?sudo?apt-get?install?python3-pip
$?sudo?pip3?install?python3-xlib p >
$?sudo?apt-get?install?scrot
$?sudo?apt-get?install?python3-tk
$?sudo?apt-get ?instalar?python3-dev
#?mac?os
$?sudo?pip3?install?pyobjc-framework-Quartz
$?sudo?pip3 ?install?pyobjc-core
$?sudo?pip3?install?pyobjc
$?sudo?pip3?install?pillow
Windows no requiere instalación dependencias. Después de instalar las dependencias, instale el paquete de Python pip3?install?pyautogui
Lo siguiente se implementa simplemente en python3.
servidor.py (extremo controlado)importar?pyautogui
importar?tiempo
desde?socket?import?socket,?AF_INET,?SOCK_STREAM,? ,?SO_REUSEADDR
tcp_server_socket?=?socket(AF_INET,?SOCK_STREAM)
dirección?=?('',?8000)
tcp_server_socket.setsockopt ( SOL_SOCKET,?SO_REUSEADDR,?1)
tcp_server_socket.bind(dirección)
tcp_server_socket.listen(128)
def?handle_key(clave):< / p>
key?=?key.decode()
if?key?==?"alt":
print("presione el teclado alt")
pyautogui.press("alt")
elif?key?==?"enter":
tiempo.dormir(5)
pyautogui.press("enter")
print("Presione enter teclado")
elif?key?==?"win":
print( "Presiona tecla de ventana")
pyautogui.hotkey("winleft")
else:
print("Presiona otra tecla")
time.sleep(5)
pyautogui.typewrite(key)
mientras?True:
print("Esperando conexión")
tcp_client_socket,addr?=?tcp_server_socket.accept()
print('...conectado?desde',?addr)
mientras?True:
data?=?tcp_client_socket.recv(1024)
si?not?data:
romper
intenta:
p>
if?data.decode().startswith('exit'):
romper
excepto?Excepción?as?e:
imprimir(e)
romper
imprimir(datos)
handle_key(datos)
tcp_client_socket.send('servidor?recved . '.encode())
tcp_client_socket.close()
client.py (terminal de comando de control de envío) import?socket
HOST?=?' localhost '
PUERTO?=?8000
BUFSIZE?=?1024
ADDR=(HOST,?PORT)
tcp_client= socket .socket(socket.AF_INET,?socket.SOCK_STREAM)
tcp_client.connect(ADDR)
FLAG?=?True
mientras?True:
p>datos
?=?input('>')
si?not?data:
romper
tcp_client.send(data.encode())
data=tcp_client.recv(BUFSIZE)
si?not?data:
FLAG?=?False
romper
imprimir(datos)
tcp_client.close()