传奇广告查询第一站 同步54.com

python实现互喷脚本(一键喊话/粘贴)
原创 于2026-01-05 18:07:00发布
2 阅读
0
0

本文参考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/#pyhook
    • pyHook3安装教程: 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的那一条语句。

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

管理员
0
0
0
分享
上一篇: 如何让Python模拟按键脚本输入到游戏中?
下一篇: lua脚本的加密和解密(GG游戏脚本)
评论
历史记录
回顶部
浏览时间 游戏名称 游戏IP 开区网址
注册1GM论坛账号
  • 上传头像
注册

已有账号,

微信扫码登录
重置密码
重置密码

注册

绑定关联手机号
关联手机号