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)