function QQSpeed_Common() {
    this.版本 = "2021/06/01"
    this.UI = Object()
    this.批量关闭 = function () {
        Api.Shell("taskkill /f /t /im GameApp.exe", 0)
        Api.Shell("taskkill /f /t /im QQSpeed_loader.exe", 0)
    }
    this.清理进程 = function () {
        var WMI = GetObject("WinMgmts:")
        var wind = ['"IIPSHostApp.exe"', '"QQSpeedChatBrowser.exe"', '"QQSpeedCefProcess.exe"']
        var n = WMI.ExecQuery('select * from win32_process where name=' + wind.join('or name=')).Count
        for (var i = 0; i < wind.length; i++) {
            Api.Shell("taskkill /f /t /im " + wind[i], 0)
        }
        wind = new Array("BugReport", "#32770", "QQ飞车", "#32770", "错误", "#32770", "游戏圈", "TXGuiFoundation");
        var Window = Api.Script.CodeObject.Window
        for (var i = 0; i < wind.length; i += 2) {
            var hwndArray = new VBArray(Window.EnumWindows(0, wind[i + 1], wind[i], 0)).toArray();
            if (hwndArray.length == 0)
                continue
            for (var a = 0; a < hwndArray.length; a++) {
                Window.SetState(hwndArray[a], 15);
            }
            n += a;
        }
        Window.MessageBox(0, "共清理" + n + "个无效进程!", "提示", 64 + 4096, 5)
        return n
    }
    this.还原设置 = function () {
        Api.Script.CodeObject.File.Delete(this.UI.config)
        Api.Script.CodeObject.Window.MessageBox(0, "设置已还原,重启辅助后更新设置", "提示", 64 + 4096, 5)
    }
    this.更换皮肤 = function () {
        var url = "https://www.lanzoui\x2Ecom/"
        var Script = Api.Script.CodeObject
        var CString = Script.CString
        var http = Api.NewHttp()
        var xmlhttp = http.GetHttp(url + "b0eqnjsyf", "GET", "", "User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0)")
        var Str = xmlhttp.ResponseText
        var Data = CString.getmid(Str, "{", "}", Str.indexOf("data"))
        Data = Data.replace(/:([a-z]\w+)/gi, ":'$1'")
        var obj = eval("({" + Data + "})")
        var keys = ["pg", "t", "k"]
        for (var i in keys) {
            obj[keys[i]] = Str.match(eval("/" + obj[keys[i]] + " *= *'?(\\w+)'?/"))[1]
        }
        obj.pwd = "3ji9"
        xmlhttp = http.GetHttp(url + "filemoreajax.php", "POST", CString.urlencode(obj), "User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0)")
        obj = eval("(" + xmlhttp.ResponseText.replace(/\.she\.dll/g, "\.she") + ")")
        var arr = new Array()
        for (i = 0; i < obj.text.length; i++) {
            arr.push(obj.text[i].name_all)
        }
        i = this.UI.Angel.MessageBoxSelfA("选择皮肤", "更换皮肤", Api.ArrayFormat(arr))
        if (i) {
            var path = ".\\plugin\\"
            if (!Script.File.FileExists(path + arr[--i])) {
                xmlhttp = http.GetHttp("http://widget.angelfz\x2Ecom/pl.asp?s=lanzous&url=" + obj.text[i].id, "GET", "", "accept-language:zh-CN,zh;q=0.9,en;q=0.8")
                Script.File.WriteFlie(path + arr[i], xmlhttp.responseBody, true)
            }
            if (!Script.File.FileExists(path + "SkinH.dll")) {
                xmlhttp = http.GetHttp("http://widget.angelfz\x2Ecom/pl.asp?s=lanzous&url=iGGadpk1hfi", "GET", null, "accept-language:zh-CN,zh;q=0.9,en;q=0.8")
                Script.File.WriteFlie(path + "SkinH.dll", xmlhttp.responseBody, true)
            }
            var hModule = Api.ECall("kernel32.dll", "GetModuleHandleW", path + "SkinH.dll") || Api.ProcAddress(path + "SkinH.dll")
            var SkinH = Api.ProcAddress(hModule, "SkinH_AttachEx");
            if (SkinH > 0) {
                var ScaleWidth = Globals("Form").ScaleWidth
                var ScaleHeight = Globals("Form").ScaleHeight
                Api.ECall(SkinH, false, Api.StrConv(path + arr[i] + String.fromCharCode(0), 0x80), "")
                Script.Window.ClientSize(Globals("Form").hWnd, ScaleWidth, ScaleHeight)
                Script.Window.MessageBox(0, "更换皮肤成功!", "提示", 64 + 4096, 5)
                return 1
            }
        }
    }
}