参赛作品
哈Ha!
最近,我想在计算机上安装一个用于控制鼠标的应用程序,但是我在连接手机时遇到了问题,并且想到了自己做类似的事情,但是怎么办? 在经历了几种选择之后,我记得电报机器人可以非常适合在文本版本中执行类似的操作,例如,编写
“ / open chrome”机器人,然后在计算机上打开Chrome。
我们需要什么?
我将用Python编写该机器人,并使用以下库:flask,pyngrok,请求,win32com.client,os,子进程。 在本文的后面,我将解释为什么我们需要一个库。 我们还需要在手机,平板电脑甚至另一台计算机上使用Telegram。 而且我们还需要一个电报机器人,我们将编写您自己可以创建它的方法,因为哈布雷(Habré)上已经有足够的文章了!
这一切如何运作?
当我们写机器人程序时,它将发送一个后继请求,其中包含有关消息以及将消息发送给我们的用户的数据,然后,我们的python脚本将根据文本执行某些操作,例如启动应用程序,输入文本,甚至关闭计算机。
实作
首先,创建我们的python文件,我将其称为main.py,导入我们需要的所有库(但首先我们需要通过pip安装它们):
from flask import Flask, request from pyngrok import ngrok import requests import subprocess import os import win32com.client
现在,要接收来自机器人的请求,我们需要运行Flask,然后运行Pyngrok不仅访问本地网络,还访问我们的站点:
app = Flask(__name__)
现在,让我们配置机器人-我们将向我们的服务器发出请求:
token = 'token BotFather'
让我们创建一个函数,以便机器人可以响应我们的消息:
def sendMessage(chat_id,text): url = URL+"sendMessage?chat_id="+str(chat_id)+"&text="+str(text) requests.get(url)
现在转到将处理来自机器人的消息并执行命令的函数:
@app.route('/', methods=['POST','GET']) # index def index(): if request.method=='POST': # post r = request.get_json() # json chat_id = r["message"]["chat"]["id"] # id username = r["message"]["from"]["username"] # username text = r["message"]["text"] # msg = text.split() # cmd = msg[0] # l = len(msg) # if username==' username': # if cmd=='/cmd' and l>1: # /cmd proc = subprocess.Popen(text[5:], shell=True, stdout=subprocess.PIPE).communicate() # /cmd sendMessage(chat_id, proc[0].decode('cp866')) # Telegram elif cmd=='/ntp': # /ntp os.system('notepad.exe') # elif cmd=='/off': # /off os.system('shutdown -p') # elif cmd=='/p': # /p shell.SendKeys(text[3:]) # return 'Hello World!' # - ngrok_url
仍然有必要添加一些Flask开始起作用的行:
if __name__=='__main__': app.run()
作者再说几句话
也许该脚本不能完全取代计算机控制,但是从打开音乐到启动开发环境,您可以想到许多命令。 谢谢大家阅读本文! 如果您有任何问题或疑问,请在评论中写上,但是我有!