当前位置: 首页 > news >正文

游戏专用....

游戏专用:星际战甲
APP窗口以及键鼠监控

import tkinter as tk
import time,threading
from pynput.keyboard import Key,Listener
import pynput.keyboard as kbclass myClass:def __init__(self):self.root = tk.Tk()self.new_text = ''self.flag = threading.Event()self.th = 0self.mykey = kb.Controller()self.delete = kb.Key.deletedef createWin(self):self.root.title("我的窗口")self.root.geometry("300x200")  result_text = tk.Text(self.root, height=10, width=50) result_text.pack()  start_button = tk.Button(self.root, text="case 1", command=self.case1) start_button.pack()  self.root.mainloop()def case1(self):self.winCase1 = tk.Toplevel(self.root) self.winCase1.title("caseA")self.new_text = tk.Text(self.winCase1, height=50, width=50)  self.new_text.grid(row=0, column=0,rowspan=50,padx=50, pady=0)start_button = tk.Button(self.winCase1, text='garuda', command=self.start_garuda)start_button.grid(row=0, column=0, sticky=tk.W)start_button = tk.Button(self.winCase1, text='nekros', command=self.start_nekros)start_button.grid(row=1, column=0, sticky=tk.W)def wlog(self,msg):#输出消息到文本框self.new_text.insert('end', msg+"\n")self.new_text.yview('end')        def on_release(self,key):pass# garudadef start_garuda(self):t = threading.Thread(target=self.run_garuda)t.start()self.new_text.delete(1.0, tk.END)msg = "= 开始模拟输入 \n- 停止模拟输入 \ndelete 退出键盘监控"self.wlog(msg)def run_garuda(self):self.run_garuda_ctl()def garuda_press(self,key):try:key = key.charexcept AttributeError:key = keyif key == Key.delete:self.wlog("停止监听")self.flag.set()self.th = 0return Falseelif key == '=':self.flag.clear()   #先清除flag状态,重置为Falseif self.th == 0:self.wlog("开始模拟键盘输入")t = threading.Thread(target=self.garuda_keyCtr)t.start()self.th = 1elif key == '-':self.flag.set()self.th = 0self.wlog("pause...")else:self.wlog("模拟按下了{}".format(key))def garuda_keyCtr(self):mykey = self.mykeywhile True:for i in range(0,30):if self.flag.is_set():       #假如 flag.set()设置了,状态为Truebreakmykey.press('1')        #按下 1 键mykey.release('1')      #松开 1 键time.sleep(0.5)if self.flag.is_set():breakelse:mykey.press('3')mykey.release('3')time.sleep(1)for j in range(0,2):if self.flag.is_set():breakmykey.press('1')mykey.release('1')time.sleep(1)mykey.press('5')mykey.release('5')time.sleep(1)   def run_garuda_ctl(self):self.mykey.press(self.delete)self.mykey.release(self.delete)with Listener(on_press=self.garuda_press,on_release=self.on_release) as listener:listener.join()# garuda# nekrosdef start_nekros(self):t = threading.Thread(target=self.run_nekros)t.start()self.new_text.delete(1.0, tk.END)msg = "= 开始模拟输入 \n- 停止模拟输入 \ndelete 退出键盘监控"self.wlog(msg)def run_nekros(self):self.run_nekros_ctl()def nekros_press(self,key):try:key = key.charexcept AttributeError:key = keyif key == Key.delete:self.wlog("停止监听")self.flag.set()self.th = 0return Falseelif key == '=':self.flag.clear()   #先清除flag状态,重置为Falseif self.th == 0:self.wlog("开始模拟键盘输入")t = threading.Thread(target=self.nekros_keyCtr)t.start()self.th = 1elif key == '-':self.flag.set()self.th = 0self.wlog("pause...")else:self.wlog("模拟按下了{}".format(key))        def nekros_keyCtr(self):mykey = self.mykeywhile True:for i in range(0,10):if self.flag.is_set():       #假如 flag.set()设置了,状态为Truebreakmykey.press('1')        #按下 1 键mykey.release('1')      #松开 1 键time.sleep(4)if self.flag.is_set():breakelse:mykey.press('4')mykey.release('4')time.sleep(5) def run_nekros_ctl(self):self.mykey.press(self.delete)self.mykey.release(self.delete)with Listener(on_press=self.nekros_press,on_release=self.on_release) as listener:listener.join()
if __name__ == "__main__":mycase = myClass()mycase.createWin()
http://www.lryc.cn/news/220520.html

相关文章:

  • 第三方登录和第三方支付
  • SpringMvc执行流程(含过滤器Filter+拦截器interceptor)
  • 【UDS基础】简单介绍“统一诊断服务“
  • 深度学习框架TensorFlow.NET之数据类型及张量2(C#)
  • Pandas指定多列组合形成新列
  • 硕鼠——视频下载利器
  • Android 13.0 Launcher3 app图标长按去掉应用信息按钮
  • 10 DETR 论文精读【论文精读】End-to-End Object Detection with Transformers
  • 高数笔记05:不定积分与定积分
  • 【代码随想录】算法训练计划13
  • Python图像处理之OpenCV模块
  • 动态规划-丑数
  • 【MogDB/openGauss的三种函数稳定性关键字】
  • java-对Integer.MAX_VALUE做加法
  • 【学习笔记】[COCI2018-2019#1] Teoretičar
  • 64位Office API声明语句第112讲
  • C++ day3作业
  • 蓝桥杯官网填空题(方格计数)
  • 【系统架构设计】计算机公共基础知识: 6 知识产权与标准化
  • 【新】致远OA从前台XXE到RCE漏洞分析
  • 宠物领养系统jsp+servlet+mysql
  • MySQL 数据库安全性练习题
  • 如何使用Node.js快速创建HTTP服务器并实现公网访问本地Server
  • zigbee路灯无线通讯机制
  • asp.net docker-compose添加kafka和redis和zookeeper
  • 2024上海国际人工智能展(CSITF)“创新驱动发展·科技引领未来”
  • 汽车标定技术(三)--XCP协议如何支持测量功能
  • [c++]你最喜爱的stringstream和snprintf性能深入剖析
  • windows 用vs创建cmake工程并编译opencv应用项目生成exe流程简述
  • QML 仪表盘小示例