如何将服务器上的如何将服务器上的python代码通过代码通过QQ发送回传信息(附实现发送回传信息(附实现
方法)方法)
主要介绍了我将服务器上的python代码通过QQ发送回传信息(附实现方法),本文通过实例代码给大家介绍的
非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
本文介绍我使用QQ得到服务器上回传的python代码的探索历程,面向的对象是对计算机网络有一定了解的读者。期待有兴趣
的人和我一起探讨!
需求来源需求来源
最近,我在跑一些数据量巨大的代码。代码在本地一运行,CPU就占满了,代码运行时间又久,因此这段时间根本用不了电
脑,这对疫情在家的大学生很难受。把代码放服务器吧,又不知道什么时候能跑完,这让我很不爽。于是,我希望服务器端的
代码能给我一个不错的反馈,由此我选择了QQ交互方法。
硬件工具硬件工具
本地电脑一台,服务器一台(如果你只是想尝试一下,而没有服务器,可以使用 VMware 虚拟机)
探索历程探索历程
首先,我使用的无界面CentOS服务器上是没有办法运行QQ的,因此想要实现交互,应该先把服务器上的信息传送到本地电
脑,再由本地电脑发送给QQ,这样我就可以收到消息了。
那么就将目标分割为两个任务了,分别为:
本地电脑给QQ发信息
服务器与本地电脑信息交互
接下来就给大家说明我是怎么实现这两步的:
本地电脑给本地电脑给QQ发信息发信息
主要原理:通过 win32 API, 将python信息赋给剪切板,粘贴到QQ聊天框中,最后模拟按 “Enter” 键,发送消息
1。
代码如下:
import win32gui
import win32con
import win32clipboard as w
class SendMsg:
"""
这是一个用于将信息发送到QQ的类, 使用方法为 :
SendMsg("收信人QQ昵称", "信息").sendmsg()
注意一点,收信人的QQ聊天窗口要在屏幕上,不能最小化或被掩盖。
"""
def __init__(self, receiver, msg):
self.receiver = receiver
self.msg = msg
self.set_text()
# 设置剪贴版内容
def set_text(self):
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, self.msg)
w.CloseClipboard()
# 发送消息
def sendmsg(self):
qq = win32gui.FindWindow(None, self.receiver)
win32gui.SendMessage(qq, win32con.WM_PASTE, 0, 0)
win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
if __name__ == '__main__':
SendMsg("一花一世界", "Hello, world").sendmsg()
效果如图所示: