魔兽世界怀旧服防掉线脚本 vvipi 发表于2020年3月18日,阅读:2623 ### 警告!!! 本脚本功能类似按键精灵,脚本挂机有可能被封号,使用后果自负 本脚本功能类似按键精灵,脚本挂机有可能被封号,使用后果自负 本脚本功能类似按键精灵,脚本挂机有可能被封号,使用后果自负 ### 代码 ```python # -*- coding: utf-8 -*- from random import randint import uiautomation as auto from time import sleep class WowKeepAlive(object): '''魔兽世界保持在线''' def __init__(self): self.handleList = [] self.currntWindow = None self.funcDict = { 1: self.skill_1, 2: self.skill_2, 3: self.jump, 4: self.move, } self.getHendleList() def getHendleList(self): '''获取WOW窗口的NativeWindowHandle''' WowHandleList = [] # 用于保存魔兽窗口的NativeWindowHandle root = auto.GetRootControl() for window in root.GetChildren(): if window.Name == '魔兽世界': WowHandleList.append(window.NativeWindowHandle) # ClassName: GxWindowClass # Name: 魔兽世界 # NativeWindowHandle self.handleList = WowHandleList def run(self): while True: self.activeWindows() def activeWindows(self): '''激活窗口''' for handle in self.handleList: self.currntWindow = auto.ControlFromHandle(handle) self.currntWindow.SetActive() self.doSomething() # 3-12秒后操作下一个窗口 t = randint(3, 12) sleep(t) # 显示桌面 auto.SendKeys('{Win}d') # 2-5分钟后再一次操作 wt = randint(120, 300) sleep(wt) def doSomething(self): '''随便做点动作防掉线''' i = randint(3, 4) self.funcDict[i]() n = randint(1, 3) for _ in range(n): m = randint(1, 4) self.funcDict[m]() sleep(3) def skill_1(self): # 选择附近友方目标 auto.SendKeys('{Ctrl}{Tab}', waitTime=0.5) # 按快捷键1 auto.SendKey(auto.Keys.VK_1, waitTime=0.3) auto.SendKey(auto.Keys.VK_1, waitTime=1.5) def skill_2(self): # 按快捷键2 auto.SendKey(auto.Keys.VK_2, waitTime=0.3) auto.SendKey(auto.Keys.VK_2, waitTime=1.5) self.jump() def jump(self): # 跳一跳 auto.SendKey(auto.Keys.VK_SPACE, waitTime=0.5) def move(self): # 左右平移 auto.PressKey(auto.Keys.VK_Q, waitTime=0.5) auto.ReleaseKey(auto.Keys.VK_Q, waitTime=0.5) auto.PressKey(auto.Keys.VK_E, waitTime=0.5) auto.ReleaseKey(auto.Keys.VK_E, waitTime=0.5) if __name__ == '__main__': print('开启魔兽世界防掉线程序...') w = WowKeepAlive() w.run() ```