首页 > 其他分享 >adb发送点击模拟-wjdr

adb发送点击模拟-wjdr

时间:2024-12-06 10:21:14浏览次数:4  
标签:wjdr current 点击 base adb range config click loop

import subprocess import random import time import keyboard import tkinter as tk import threading import configparser from tkinter import font
# 创建ConfigParser对象 config = configparser.ConfigParser()
# 读取config.ini文件 config.read('config.ini')
# 从配置文件中获取坐标和范围 x1_base = config.getint('Coordinates', 'x1_base') y1_base = config.getint('Coordinates', 'y1_base') x2_base = config.getint('Coordinates', 'x2_base') y2_base = config.getint('Coordinates', 'y2_base') x3_base = config.getint('Coordinates', 'x3_base') y3_base = config.getint('Coordinates', 'y3_base') x_range = config.getint('Coordinates', 'x_range') y_range = config.getint('Coordinates', 'y_range')
# 构建ADB点击命令模板 adb_click_template = "adb shell input tap {} {}"
# 初始化循环控制开关 click_loop_enabled = False current_choice = None
# 执行ADB命令的函数 def run_adb_command(command):     try:         subprocess.run(command, shell=True, check=True)     except subprocess.CalledProcessError as e:         print(f"ADB命令执行出错: {e}")
# 生成随机睡眠时间的函数 def random_sleep():     return random.uniform(0.01, 1.01)
# 生成x和y的随机偏移量的函数 def random_offset(x_range, y_range):     x_offset = random.uniform(-x_range, x_range)     y_offset = random.uniform(-y_range, y_range)     return int(x_offset), int(y_offset)
# 定义执行点击操作的函数 def click_loop(x_base, y_base):     global click_loop_enabled     while click_loop_enabled:         x_offset, y_offset = random_offset(x_range, y_range)         x, y = x_base + x_offset, y_base + y_offset         run_adb_command(adb_click_template.format(x, y))         click_interval = random_sleep()         time.sleep(click_interval)         print(f"模式:({current_choice}),点击坐标: ({x}, {y}),间隔时间:({click_interval:.4f}s)")
# 切换点击循环状态的函数(修改后) def toggle_click_loop():     global click_loop_enabled, current_loop     if click_loop_enabled:         click_loop_enabled = False         print("点击循环已停止")         # 如果当前有循环线程在运行,尝试停止它(虽然daemon=True会在主程序退出时自动清理)         if current_loop and current_loop.is_alive():             current_loop.join(timeout=1)  # 等待线程结束,最多等待1秒         # 重新显示主窗口,让用户可以选择新的功能         root.deiconify()     else:         if current_choice:             click_loop_enabled = True             print("点击循环已启动")             # 根据当前选择启动相应的循环线程             if current_choice == "治疗":                 current_loop = threading.Thread(target=click_loop, args=(x1_base, y1_base), daemon=True)                 current_loop = threading.Thread(target=click_loop, args=(x2_base, y2_base), daemon=True)                 current_loop = threading.Thread(target=click_loop, args=(x2_base, y2_base), daemon=True)               elif current_choice == "协助":                 current_loop = threading.Thread(target=click_loop, args=(x3_base, y3_base), daemon=True)             current_loop.start()
# 定义用户选择功能的函数 def choose_function(selected_choice):     global current_choice     current_choice = selected_choice     print(f"你选择了: {selected_choice}")     root.withdraw()  # 隐藏主窗口     # 不立即启动循环,等待用户按下ESC键
# 当窗口关闭时执行的函数 def on_closing():     global click_loop_enabled     click_loop_enabled = False  # 禁用点击循环     root.destroy()  # 销毁主窗口
root = tk.Tk() root.title("模拟点击") root.geometry('240x100') # 创建一个自定义字体 custom_font = font.Font(size=12, weight="bold")  # 您可以根据需要更改字体和大小 root.configure(bg='#9F9F9F')  # 使用颜色名称设置背景色 label = tk.Label(root, text="先选择模式\n再按esc开启或关闭", font=custom_font, bg='#8F8F8F') label.pack(pady=5) root.protocol("WM_DELETE_WINDOW", on_closing)  # 处理窗口关闭事件
# 创建并放置选择按钮 tk.Button(root, text="治疗", font=custom_font, width=10, height=6, command=lambda: choose_function("治疗"), bg='#2F6F2F', fg='#6F2F2F').pack(side=tk.LEFT, padx=10, pady=10) tk.Button(root, text="协助", font=custom_font, width=10, height=6, command=lambda: choose_function("协助"), bg='#2F2F6F', fg='#2F6F2F').pack(side=tk.RIGHT, padx=10, pady=10)
# 使用keyboard库监听Esc键按下事件 keyboard.add_hotkey('esc', toggle_click_loop)
# 运行主事件循环 root.mainloop()   -------------------------附件config.ini------------------------- [Coordinates] x1_base = 370 y1_base = 2040 x2_base = 840 y2_base = 2040 x3_base = 610 y3_base = 2700 x_range = 80 y_range = 20  

标签:wjdr,current,点击,base,adb,range,config,click,loop
From: https://www.cnblogs.com/abs8023/p/18589742

相关文章

  • 如何放大点击的区域?
    在前端开发中,有多种方法可以放大点击区域,使其更容易被用户点击,尤其是在移动设备上。以下是一些常用的技巧:1.使用padding:这是最简单和最常用的方法。通过增加元素的内边距(padding),可以在不改变元素视觉大小的情况下扩大点击区域。.element{padding:10px;/*上下左右各增......
  • 如何扩大CheckBox点击区域
    有多种方法可以扩大CheckBox的点击区域,以下是几种常见且有效的方法:1.使用label标签包裹checkbox:这是最推荐和最语义化的方法。将<label>元素与<inputtype="checkbox">关联起来,点击label的任何区域都会触发checkbox的选中/取消选中状态。<label><inputtype=......
  • 如何使用伪元素实现增大点击热区来增加用户体验?
    使用伪元素(通常是::before或::after)来增大点击热区可以有效提升用户体验,尤其是在移动端或使用触控设备时。以下是几种实现方法:1.利用::before或::after扩展目标元素的点击区域:这是最常用的方法。通过为目标元素添加伪元素,并将其定位到目标元素周围,可以有效地扩大点击区域。......
  • 在DOM上同时绑定两个点击事件(一个用捕获,一个用冒泡),事件总共会执行几次,先执行哪个事件?
    在DOM上同时绑定两个点击事件,一个使用捕获,一个使用冒泡,事件总共会执行两次。执行顺序:捕获阶段的事件先执行。当事件发生在目标元素的祖先元素上时,捕获阶段的监听器会先被触发,一路向下传递到目标元素。冒泡阶段的事件后执行。事件在目标元素上触发后,会沿着DOM树向上冒泡......
  • div等元素如何阻止点击穿透和实现点击穿透?
    在前端开发中,阻止点击穿透(也称为点击吞噬)和实现点击穿透是常见的需求,尤其是在处理叠加元素(例如弹出层、模态框)时。div元素本身并没有直接的“阻止点击穿透”或“实现点击穿透”属性。我们需要结合CSS和JavaScript来实现这些效果。1.阻止点击穿透(防止点击底层元素):几种......
  • a链接被点击后,在跳转之前的处理事件
    在HTML中,<a>标签通常用于创建链接,使用户能够点击并跳转到另一个页面或网址。如果你想在跳转前处理一些事件,你可以使用JavaScript来实现这一功能。以下是一个简单的示例,展示了如何在用户点击<a>链接并在页面跳转之前执行一些JavaScript代码:<!DOCTYPEhtml><htmllang="en">......
  • html5点击返回键怎样不让它返回上一页?
    Youcanpreventthedefaultbackbuttonbehavior(navigatingtothepreviouspage)inHTML5usingJavaScript.Here'showyoucandoit,alongwithexplanationsanddifferentapproachesdependingonwhatyouwanttoachieve:1.Usinghistory.pushStat......
  • 怎么设置可点击的元素上强制手型?
    在前端开发中,设置可点击元素上强制显示手型光标,可以使用CSS的cursor属性。将cursor属性的值设置为pointer即可。以下几种方式可以实现:内联样式:直接在HTML元素的style属性中设置:<buttonstyle="cursor:pointer;">点击我</button><ahref="#"style="cursor:......
  • 【SpringCloud】LoadBalancer——服务调用与负载均衡
    基本介绍主要功能:LoadBlancer的主要作用就是提供客户端软件的负载均衡,然后由OpenFeign去调用具体的微服务。负载均衡的算法,分为轮询和随机。使用场景:订单模块的负载均衡。通过消费者模块,访问订单支付模块(子模块8001/8002/8003)例子前提:已经使用了注册服务中心(https://www.cn......
  • 解决:点击编辑时预警通知人(与科室下拉联动)会闪一下Id再显示汉字
    表单:<el-form-itemlabel="通知人所在科室:"prop="ksdm"><el-selectv-model="formData.ksdm"placeholder="请选择"style="width:90%"clearable......