SWS888pvptools
地下城与勇士pvp工具
- 需要管理员身份运行
- F10开 有beep提示音
核心代码
import pystray
from PIL import Image
from pystray import MenuItem, Menu
import os
import json
import threading
import pythoncom
import pyWinhook 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
关键字 #sws888pvptools #sws888tools #地下城与勇士pvptools