python实现互喷脚本(一键喊话/粘贴) 您所在的位置:网站首页 lol一键喊话骂人怎么开语音 python实现互喷脚本(一键喊话/粘贴)

python实现互喷脚本(一键喊话/粘贴)

2023-11-10 06:37| 来源: 网络整理| 查看: 265

本文参考B站UP主寒食君的视频,基于个人理解写成视频传送门

或许许多人都有在网络冲浪或者游戏里都多多少少有跟人对线的经历,可惜奈何手速不太行。看了这个视频仿佛找到了跟人对线的良器,尤其是在研习代码时使我受益良多~

介绍

即一个能实现按下指定的任意键就能从文本库中调取一条语句并复制到剪贴板的功能。

希望大家还是能营造一个良好的网络环境,把这个代码当成一个学习过程就好啦。

库准备

(本人python版本为3.6.0 32位)

import sys import win32clipboard as w import win32con import PyHook3 import pythoncom import random 我们需要win32clipboard来实现python对windows剪切板的操作。

​ 安装:pip install pypiwin32

pyHook是一个钩子,用来监听鼠标或键盘事件。

(由于不知名原因,我用不了pyHook所以使用的是PyHook3,效果一样,但是pyHook3安装繁琐一些而且对应版本的轮子较少)

pyHook轮子下载 : https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhookpyHook3安装教程: https://blog.csdn.net/u013560932/article/details/78732250/ 关键代码 #监听键盘事件 def onKeyboardEvent(event): if(event.Key == "Lcontrol"): #按下左下角的ctrl键,可以修改为 b = random.sample(array,1) #从array数组中随机取出一条句子 settext(b[0].encode('utf-8').decode('utf8').encode(sys.getfilesystemencoding()))#设置到剪贴板中 #print(event.Key) return True #把字符串复制到剪贴板中 def settext(s): w.OpenClipboard() w.EmptyClipboard() #print(chardet.detect(str.encode(s))) res = s.decode('utf-8') #如果出现乱码,注释这条语句 w.SetClipboardData(win32con.CF_UNICODETEXT,res) w.CloseClipboard() 完整代码: import sys import win32clipboard as w import win32con import PyHook3 import pythoncom import random filename = 'yaoshui.txt' #在这里修改你的文件名路径 array=[] def onKeyboardEvent(event): if(event.Key == "Lcontrol"): b = random.sample(array,1) settext(b[0].encode('utf-8').decode('utf-8').encode(sys.getfilesystemencoding())) print(event.Key) return True def gettext(): w.OpenClipboard() t = w.GetClipboardData(win32con.CF_TEXT) w.CloseClipboard() return t def settext(s): w.OpenClipboard() w.EmptyClipboard() #print(chardet.detect(str.encode(s))) res = s.decode('utf-8') w.SetClipboardData(win32con.CF_UNICODETEXT,res) w.CloseClipboard() if __name__ == '__main__': f = open(filename,'r',encoding='utf-8') array = f.readlines() hm = PyHook3.HookManager() hm.KeyDown = onKeyboardEvent hm.HookKeyboard() pythoncom.PumpMessages() 遇到问题

如果遇到中文字符乱码的情况,也许是SetClipboardData()这里出现问题。我在测试的时候发现参数s的字符串类型为byte,所以decode解码成了’utf-8’的编码。如果在你的电脑上运行参数s的类型是str的话,就注释掉decode的那一条语句。

如果您有任何问题,欢迎在评论区与我讨论



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有