用什么Python代码能控制另一台电脑的键盘

电脑教程024

用什么Python代码能控制另一台电脑的键盘,第1张

python3,使用socket在两台电脑之间通信,使用python pyautogui模块实现按键。如果不在一个局域网,需要公网服务器作做转发。需要环境安装环境依赖:

# ubuntu

$ sudo apt-get install python3-pip

$ sudo pip3 install python3-xlib

$ sudo apt-get install scrot

$ sudo apt-get install python3-tk

$ sudo apt-get install python3-dev    

# mac os

$ sudo pip3 install pyobjc-framework-Quartz

$ sudo pip3 install pyobjc-core

$ sudo pip3 install pyobjc

$ sudo pip3 install pillow

windows不需要安装依赖。安装依赖之后,安装python 包

pip3 install pyautogui

以下在python3中简单实现。

server.py (被控制端)

import pyautogui

import time

from socket import socket, AF_INET, SOCK_STREAM, SOL_SOCKET, SO_REUSEADDR

tcp_server_socket = socket(AF_INET, SOCK_STREAM)

address = ('', 8000)

tcp_server_socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)

tcp_server_socket.bind(address)

tcp_server_socket.listen(128)

def handle_key(key):

    key = key.decode()

    if key == "alt":

        print("按下alt键盘")

        pyautogui.press("alt")

    elif key == "enter":

        time.sleep(5)

        pyautogui.press("enter")

        print("按下enter键盘")

    elif key == "win":

        print("按下窗口键")

        pyautogui.hotkey("winleft")

    else:

        print("按下其它键")

        time.sleep(5)

        pyautogui.typewrite(key)

while True:

    print("等待连接")

    tcp_client_socket,addr = tcp_server_socket.accept()

    print('...connected from', addr)

    while True:

        data = tcp_client_socket.recv(1024)

        if not data:

            break

        try:

            if data.decode().startswith('exit'):

                break

        except Exception as e:

            print(e)

            break

        print(data)

        handle_key(data)

        tcp_client_socket.send('server recved.'.encode())

    tcp_client_socket.close()

client.py (发送控制指令端)

import socket

HOST = 'localhost'

PORT = 8000

BUFSIZE = 1024

ADDR=(HOST, PORT)

tcp_client=socket.socket(socket.AF_INET, socket.SOCK_STREAM)

tcp_client.connect(ADDR)

FLAG = True

while True:

    data = input('>')

    if not data:

        break

    tcp_client.send(data.encode())

    data=tcp_client.recv(BUFSIZE)

    if not data:

        FLAG = False

        break

    print(data)

tcp_client.close()

1、win10开始菜单搜索“快速助手”打开应用;

2、快速助手使用的是 Windows 的远程连接机制。在使用前,受连接方需要开启系统中的 “允许远程协助”的选项,才可以使用。

3、如果 A 电脑远程连接 B 电脑,那么首先需要操作的是 A 电脑。A 电脑需要在快速助手中,点击 “提供协助”,随后登录微软账号,接着快速助手就会生成一个安全代码。这个安全代码是存在有效期的,10 分钟后即会过期。

4、接着,在 B 电脑中输入这个安全代码,A 电脑就可以连接过去了。连接完成后,A 电脑可以直接远程操作 B 电脑,以远程解决问题。