SWS888pvptools
pvp工具

SWS888pvptools
更新图标

核心代码
import pystray
from PIL import Image
from pystray import MenuItem, Menu
import os
import json
import threading
import pythoncom
import PyHook3 as pyHook
import win32api
import ctypes, sys
import winsound
VirtualKey_dict = {
'backspace':0x08,
'tab':0x09,
'clear':0x0C,
'enter':0x0D,
'shift':0x10,
'ctrl':0x11,
'alt':0x12,
'pause':0x13,
'caps_lock':0x14,
'esc':0x1B,
'spacebar':0x20,
'page_up':0x21,
'page_down':0x22,
'end':0x23,
'home':0x24,
'left_arrow':0x25,
'up_arrow':0x26,
'right_arrow':0x27,
'down_arrow':0x28,
'select':0x29,
'print':0x2A,
'execute':0x2B,
'print_screen':0x2C,
'ins':0x2D,
'del':0x2E,
'help':0x2F,
'0':0x30,
'1':0x31,
'2':0x32,
'3':0x33,
'4':0x34,
'5':0x35,
'6':0x36,
'7':0x37,
'8':0x38,
'9':0x39,
'a':0x41,
'b':0x42,
'c':0x43,
'd':0x44,
'e':0x45,
'f':0x46,
'g':0x47,
'h':0x48,
'i':0x49,
'j':0x4A,
'k':0x4B,
'l':0x4C,
'm':0x4D,
'n':0x4E,
'o':0x4F,
'p':0x50,
'q':0x51,
'r':0x52,
's':0x53,
't':0x54,
'u':0x55,
'v':0x56,
'w':0x57,
'x':0x58,
'y':0x59,
'z':0x5A,
'numpad_0':0x60,
'numpad_1':0x61,
'numpad_2':0x62,
'numpad_3':0x63,
'numpad_4':0x64,
'numpad_5':0x65,
'numpad_6':0x66,
'numpad_7':0x67,
'numpad_8':0x68,
'numpad_9':0x69,
'multiply_key':0x6A,
'add_key':0x6B,
'separator_key':0x6C,
'subtract_key':0x6D,
'decimal_key':0x6E,
'divide_key':0x6F,
'F1':0x70,
'F2':0x71,
'F3':0x72,
'F4':0x73,
'F5':0x74,
'F6':0x75,
'F7':0x76,
'F8':0x77,
'F9':0x78,
'F10':0x79,
'F11':0x7A,
'F12':0x7B,
'F13':0x7C,
'F14':0x7D,
'F15':0x7E,
'F16':0x7F,
'F17':0x80,
'F18':0x81,
'F19':0x82,
'F20':0x83,
'F21':0x84,
'F22':0x85,
'F23':0x86,
'F24':0x87,
'num_lock':0x90,
'scroll_lock':0x91,
'left_shift':0xA0,
'right_shift ':0xA1,
'left_control':0xA2,
'right_control':0xA3,
'left_menu':0xA4,
'right_menu':0xA5,
'browser_back':0xA6,
'browser_forward':0xA7,
'browser_refresh':0xA8,
'browser_stop':0xA9,
'browser_search':0xAA,
'browser_favorites':0xAB,
'browser_start_and_home':0xAC,
'volume_mute':0xAD,
'volume_Down':0xAE,
'volume_up':0xAF,
'next_track':0xB0,
'previous_track':0xB1,
'stop_media':0xB2,
'play/pause_media':0xB3,
'start_mail':0xB4,
'select_media':0xB5,
'start_application_1':0xB6,
'start_application_2':0xB7,
'attn_key':0xF6,
'crsel_key':0xF7,
'exsel_key':0xF8,
'play_key':0xFA,
'zoom_key':0xFB,
'clear_key':0xFE,
'+':0xBB,
',':0xBC,
'-':0xBD,
'.':0xBE,
'/':0xBF,
'`':0xC0,
';':0xBA,
'[':0xDB,
'\\':0xDC,
']':0xDD,
"'":0xDE,
'`':0xC0}
# press_list = ["X","Z","Lcontrol","Numpad0","G"]
# press_list = ["x","z","numpad_0","g","w","v","q","e","t","y","left_control","d","f","a"]
press_list = ["x",]
dnf_once_presss_run_list = ["numpad_4","numpad_6"]
exit_flag = False
MapVirtualKey = ctypes.windll.user32.MapVirtualKeyA
#毫秒
SLEEP_TIME = 10
SWITCH_BUTTON = "F10"
#自定义sleep时间
class Timer(object):
def __init__(self):
freq = ctypes.c_longlong(0)
ctypes.windll.kernel32.QueryPerformanceFrequency(ctypes.byref(freq))
self.__freq = freq.value
self.__beginCount = self.counter()
def counter(self):
freq = ctypes.c_longlong(0)
ctypes.windll.kernel32.QueryPerformanceCounter(ctypes.byref(freq))
return freq.value
def beginCount(self):
self.__beginCount = self.counter()
# 时间差,精确到微秒
def secondsDiff(self):
self.__endCount = self.counter()
return (self.__endCount - self.__beginCount) / (self.__freq + 0.)
# 休眠,精确到毫秒
def sleep(self, timeout):
while True:
self.__endCount = self.counter()
if ((self.__endCount - self.__beginCount) / (self.__freq + 0.)) * 1000 >= timeout:
return
keep_press = {
}
for _ in press_list:
keep_press[_] = None
for _ in dnf_once_presss_run_list:
keep_press[_] = None
def pressx(key,*args):
MapVirtualKey_NUMBER = VirtualKey_dict[key]
VirtualKey = MapVirtualKey(MapVirtualKey_NUMBER, 0)
while True:
if keep_press[key] == 1 and exit_flag == False:
win32api.keybd_event(MapVirtualKey_NUMBER, VirtualKey, 0, 0)
Timer().sleep(10) #
win32api.keybd_event(MapVirtualKey_NUMBER, VirtualKey, 2, 0)
Timer().sleep(30)
else:
return
图标设置

menu = (
MenuItem('Open', show_window, default=True),
Menu.SEPARATOR,
MenuItem(
'About',
lambda icon, item: icon.notify('F10开关\n管理员身份运行')),
Menu.SEPARATOR,
MenuItem('Exit', quit_window),
) #单击就是default
# menu = (MenuItem('Open', show_window), MenuItem('Exit', quit_window))
# image = Image.open(r"\avatar\50centavatar.png")
icon = pystray.Icon("icon", base64_to_image(Properties().dnf_icon_fillet), f"{Properties().APPNAME}", menu)
SWS888 PvP Tools 进行了更新,此次更新包括图标刷新和核心代码优化。该工具使用 Python 编写,集成了 pystray 和 PIL 库,提供了一个系统托盘图标用于控制软件的启动和退出。此外,它还利用 PyHook 监听键盘事件,实现了一系列快捷键功能,如 F10 开关等。
695

被折叠的 条评论
为什么被折叠?



