好友
阅读权限10
听众
最后登录1970-1-1
|
请大神帮我看看,到底是哪个地方有问题,这个自创的窗口同步器,无法同步,也无法找到游戏窗口,谢谢大神
import sys
import time
import threading
import tkinter as tk
from tkinter import messagebox, ttk
import win32gui
import win32con
import win32api
from pynput import keyboard
class WindowSyncer:
def __init__(self):
self.master_hwnd = None
self.slave_hwnds = []
self.is_listening = False
self.listener = None
self.sync_keys = set() # 需要同步的按键集合,例如 {'a', 'b', 'space'}
self.key_map = {} # 映射 pynput key 到 virtual key code
# 初始化 Tkinter GUI
self.root = tk.Tk()
self.root.title("多窗口键鼠同步器 (Python版)")
self.root.geometry("600x400")
self.root.resizable(False, False)
# 样式配置
style = ttk.Style()
style.theme_use('clam')
self.setup_ui()
def setup_ui(self):
# 顶部框架:主控窗口设置
frame_master = ttk.LabelFrame(self.root, text="主控窗口设置", padding=10)
frame_master.pack(fill="x", padx=10, pady=5)
self.lbl_master = ttk.Label(frame_master, text="未选择主控窗口")
self.lbl_master.pack(side="left", padx=5)
btn_set_master = ttk.Button(frame_master, text="点击此处并切换至目标窗口 (3秒后绑定)", command=self.set_master_window_delayed)
btn_set_master.pack(side="right", padx=5)
# 中部框架:被控窗口列表
frame_slaves = ttk.LabelFrame(self.root, text="被控窗口列表", padding=10)
frame_slaves.pack(fill="both", expand=True, padx=10, pady=5)
self.listbox_slaves = tk.Listbox(frame_slaves, selectmode=tk.MULTIPLE)
scrollbar = ttk.Scrollbar(frame_slaves, orient="vertical", command=self.listbox_slaves.yview)
self.listbox_slaves.configure(yscrollcommand=scrollbar.set)
self.listbox_slaves.pack(side="left", fill="both", expand=True)
scrollbar.pack(side="right", fill="y")
btn_add_slave = ttk.Button(frame_slaves, text="添加选中窗口为被控 (3秒后绑定)", command=self.add_slave_window_delayed)
btn_add_slave.pack(fill="x", pady=5)
btn_remove_slave = ttk.Button(frame_slaves, text="移除选中被控窗口", command=self.remove_selected_slaves)
btn_remove_slave.pack(fill="x", pady=5)
# 底部框架:同步设置与控制
frame_control = ttk.Frame(self.root, padding=10)
frame_control.pack(fill="x", padx=10, pady=5)
ttk.Label(frame_control, text="同步按键 (逗号分隔, 如: a,b,space,enter):").pack(anchor="w")
se |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|
|