Skip to content

为窗口同步功能添加随机延迟选项 #15

@tison-g

Description

@tison-g

功能描述

添加随机延迟功能以增强窗口同步的模拟真实性,减少检测风险。

需求详情

  1. 在同步功能中添加可配置的随机延迟选项
  2. 在设置界面添加延迟控制面板
  3. 支持启用/禁用延迟功能
  4. 允许用户设置延迟范围(毫秒)
  5. 配置需要保存到 settings.json

具体修改

  1. UI修改
# 在 ChromeManager 类的 __init__ 方法中添加配置变量
self.sync_delay_enabled = tk.BooleanVar(value=False)  
self.min_delay = tk.StringVar(value="50") 
self.max_delay = tk.StringVar(value="150")
  1. 设置界面修改
# 在 show_settings_dialog 方法中添加延迟设置面板
delay_frame = ttk.LabelFrame(function_frame, text="同步延迟设置", padding=10)
delay_frame.pack(fill=tk.X, pady=5)

# 启用延迟复选框
delay_check = ttk.Checkbutton(
    delay_frame,
    text="启用随机延迟",
    variable=self.sync_delay_enabled
)
delay_check.pack(anchor=tk.W)

# 延迟范围设置
delay_range_frame = ttk.Frame(delay_frame)
delay_range_frame.pack(fill=tk.X, pady=5)

ttk.Label(delay_range_frame, text="延迟范围(毫秒):").pack(side=tk.LEFT)
ttk.Entry(delay_range_frame, width=8, textvariable=self.min_delay).pack(side=tk.LEFT, padx=5)
ttk.Label(delay_range_frame, text="至").pack(side=tk.LEFT, padx=5)
ttk.Entry(delay_range_frame, width=8, textvariable=self.max_delay).pack(side=tk.LEFT, padx=5)
  1. 事件处理修改
# 在 on_keyboard_event 和 on_mouse_event 方法中添加延迟处理
if self.sync_delay_enabled.get():
    try:
        min_delay = int(self.min_delay.get()) / 1000  # 转换为秒
        max_delay = int(self.max_delay.get()) / 1000
        if min_delay > 0 and max_delay >= min_delay:
            time.sleep(random.uniform(min_delay, max_delay))
    except ValueError:
        pass  # 忽略转换错误
  1. 配置保存修改
# 在 save_settings 方法中添加
settings['sync_delay_enabled'] = self.sync_delay_enabled.get()
settings['min_delay'] = self.min_delay.get() 
settings['max_delay'] = self.max_delay.get()

# 在 load_settings 方法中添加
if 'sync_delay_enabled' in settings:
    self.sync_delay_enabled.set(settings['sync_delay_enabled'])
if 'min_delay' in settings:
    self.min_delay.set(settings['min_delay'])
if 'max_delay' in settings:
    self.max_delay.set(settings['max_delay'])

测试步骤

  1. 验证设置界面正确显示延迟控制选项
  2. 确认可以正常启用/禁用延迟功能
  3. 验证延迟范围设置的有效性
  4. 测试同步过程中的延迟效果
  5. 确认设置能正确保存和加载

注意事项

  1. 延迟范围需要限制在合理区间(建议50-1000ms)
  2. 需要处理无效的延迟输入值
  3. 确保不影响现有的同步功能正常使用

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions