魔兽改键器

功能:改小背包键并保存设置到注册表,方便大家的操作

可有大家喜好自行设定按键

演示图:

代码如下:

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Resources.au3>
$List = ProcessList(@ScriptName)
If $List[0][0] > 1 Then Exit
FileInstall("Sound.wav",@TempDir&"\",1)
Dim $Input[6],$Button[5],$Radio[3],$Group[3],$RadioCheck,$Key = 0,$K = 0
$SysListViewPos = ControlGetPos ("Program Manager","",1)
#Region ### START Koda GUI section ### Form=
$Form = GUICreate("Our Game V.3", 280, 350, $SysListViewPos[2]-282, $SysListViewPos[3]-352,$WS_POPUPWINDOW,$WS_EX_TOPMOST)
$Group[0] = GUICtrlCreateGroup("V.2", 10, 5, 110, 240)
GUICtrlSetState(-1,$GUI_DISABLE)
$Input[0] = GUICtrlCreateInput("", 20, 20, 40, 40)
$Input[1] = GUICtrlCreateInput("", 70, 20, 40, 40)
$Input[2] = GUICtrlCreateInput("", 20, 70, 40, 40)
$Input[3] = GUICtrlCreateInput("", 70, 70, 40, 40)
$Input[4] = GUICtrlCreateInput("", 20, 120, 40, 40)
$Input[5] = GUICtrlCreateInput("", 70, 120, 40, 40)
$v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "v3")
If @error And $v3Reg = "" Then
    RegWrite("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "v3", "REG_SZ", "``````1")
    RegWrite("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s1", "REG_SZ", "Q``````1")
    RegWrite("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s2", "REG_SZ", "W`E`````1")
    RegWrite("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s3", "REG_SZ", "1`2`````1")
    $v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "v3")
EndIf
$RegData = StringSplit($v3Reg,"`")
For $i = 0 To 5
    GUICtrlSetLimit($Input[$i], 1)
    GUICtrlSetFont($Input[$i], 22, 800, 0, "Impact")
    GUICtrlSetColor($Input[$i], 0x000000)
    GUICtrlSetStyle ($Input[$i],BitOR(0x0001,0x0008))
    $j = $i + 1
    If $RegData[$j] <> "" Then GUICtrlSetData($Input[$i],$RegData[$j])
Next
$Sound = $RegData[7]
$Checkbox = GUICtrlCreateCheckbox("开启启动音", 25, 170, 80, 20)
If $Sound = 1 Then GUICtrlSetState(-1,$GUI_CHECKED)
$Button[0] = GUICtrlCreateButton("&S保存到 V.1", 20, 200, 90, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group[1] = GUICtrlCreateGroup("V.1", 10, 250, 260, 90)
GUICtrlSetState(-1,$GUI_DISABLE)
$Radio[0] = GUICtrlCreateRadio("", 20, 270, 120, 20)
$Radio[1] = GUICtrlCreateRadio("", 20, 290, 120, 20)
$Radio[2] = GUICtrlCreateRadio("", 20, 310, 120, 20)
For $i = 0 To 2
    $v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s"&$i+1)
    $RegData = StringSplit($v3Reg,"`")
    $v3Reg = "&" & $i + 1 &"."
    For $j = 1 to 6
        If $RegData[$j] <> "" Then $v3Reg = $v3Reg & $RegData[$j] & ";"
    Next
    If $RegData[7] = 1 Then
        $v3Reg = $v3Reg & "开启启动音."
    Else
        $v3Reg = $v3Reg & "关闭启动音."
    EndIf
    GUICtrlSetData($Radio[$i],$v3Reg)
Next
$Button[1] = GUICtrlCreateButton("&U设置到 V.2", 160, 270, 90, 25, 0)
$Button[2] = GUICtrlCreateButton("导出配制信息", 160, 305, 90, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group[2] = GUICtrlCreateGroup("使用说明", 130, 5, 140, 240)
GUICtrlSetState(-1,$GUI_DISABLE)
$Label = GUICtrlCreateLabel(@CRLF &'"`"启动键' & @CRLF & @CRLF &'"Home"显示全员血条' & @CRLF & @CRLF &'"V.2"设置热键' & @CRLF & @CRLF &'"V.1"选择热键组合', 140, 20, 120, 100)
GUICtrlSetState(-1,$GUI_DISABLE)
$Pic = GUICtrlCreatePic("", 166, 125, 64, 64)
_ResourceSetImageToCtrl($Pic, "Logo")
$Button[3] = GUICtrlCreateButton("最小化", 140, 200, 60, 25, 0)
$Button[4] = GUICtrlCreateButton("关 闭", 200, 200, 60, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

HotKeySet("`","Key")

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $Button[0]
            SaveSetting()
        Case $Button[1]
            UseSetting()
        Case $Button[2]
            ExportReg()
        Case $Button[3]
            GUISetState(@SW_MINIMIZE,$Form)
        Case $Button[4]
            $v3Reg = ""
            For $i = 0 To 5
                $Var = GUICtrlRead($Input[$i])
                $v3Reg = $v3Reg & $Var &"`"
            Next
            $v3Reg = $v3Reg & $Sound
            RegDelete("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "v3")
            RegWrite("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "v3", "REG_SZ", $v3Reg)
            Exit
        Case $Radio[0]
            $RadioCheck = 1
        Case $Radio[1]
            $RadioCheck = 2
        Case $Radio[2]
            $RadioCheck = 3
        Case $Checkbox
            If BitAND(GUICtrlRead($Checkbox), $GUI_CHECKED) = $GUI_CHECKED Then
                $Sound = 1
            Else
                $Sound = 0
            EndIf
        Case $GUI_EVENT_PRIMARYDOWN
            If $Key = 0 Then
                $Now = GUIGetCursorInfo($Form)
                For $i = 0 To 5
                    If $Now[4] = $Input[$i] Then GUICtrlSetData($Input[$i],"")
                Next
            EndIf
    EndSwitch
WEnd

Func SaveSetting()
    If $RadioCheck <> "" Then
        $v3Reg = ""
        For $i = 0 To 5
            $Var = GUICtrlRead($Input[$i])
            $v3Reg = $v3Reg & $Var &"`"
        Next
        $v3Reg = $v3Reg & $Sound
        RegDelete("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s" & $RadioCheck)
        RegWrite("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s" & $RadioCheck, "REG_SZ", $v3Reg)
        $v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s" & $RadioCheck)
        $RegData = StringSplit($v3Reg,"`")
        $v3Reg = "&" & $RadioCheck &"."
        For $j = 1 to 6
            If $RegData[$j] <> "" Then $v3Reg = $v3Reg & $RegData[$j] & ";"
        Next
        If $RegData[7] = 1 Then
            $v3Reg = $v3Reg & "开启启动音."
        Else
            $v3Reg = $v3Reg & "关闭启动音."
        EndIf
        $i = $RadioCheck - 1
        GUICtrlSetData($Radio[$i],$v3Reg)
    Else
        MsgBox(0,"错误","请选择保存方案!")
    EndIf
EndFunc

Func UseSetting()
    If $RadioCheck <> "" Then
        $v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s" & $RadioCheck)
        $RegData = StringSplit($v3Reg,"`")
        For $i = 0 To 5
            $j = $i + 1
            If $RegData[$j] <> "" Then
                GUICtrlSetData($Input[$i],$RegData[$j])
            Else
                GUICtrlSetData($Input[$i],"")
            EndIf
        Next
        $Sound = $RegData[7]
        If $Sound = 1 Then
            GUICtrlSetState($Checkbox,$GUI_CHECKED)
        Else
            GUICtrlSetState($Checkbox,$GUI_UNCHECKED)
        EndIf
    Else
        MsgBox(0,"错误","请选择设置方案!")
    EndIf
EndFunc

Func ExportReg()
    $File = "配制信息.reg"
    FileDelete($File)
    FileWrite($File , "Windows Registry Editor Version 5.00"&@CRLF&@CRLF&"[HKEY_CURRENT_USER\Software\BroS.4\OurGame]"&@CRLF)
    $v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "v3")
    FileWrite($File ,'"v3"="'&$v3Reg&'"'&@CRLF)
    $v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s1")
    FileWrite($File ,'"s1"="'&$v3Reg&'"'&@CRLF)
    $v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s2")
    FileWrite($File ,'"s2"="'&$v3Reg&'"'&@CRLF)
    $v3Reg = RegRead("HKEY_CURRENT_USER\Software\BroS.4\OurGame", "s3")
    FileWrite($File ,'"s3"="'&$v3Reg&'"'&@CRLF)
EndFunc

Func Key()
    If $Key Then
        $Key = 0
        For $i = 0 To 5
            GUICtrlSetState ($Input[$i],$GUI_ENABLE)
        Next
        For $i = 0 To 2
            GUICtrlSetState ($Button[$i],$GUI_ENABLE)
        Next
        For $i = 0 To 2
            GUICtrlSetState ($Radio[$i],$GUI_ENABLE)
        Next
        GUICtrlSetState ($Checkbox,$GUI_ENABLE)
        CancelHotKey()
        HotKeySet("{HOME}")
        Send("{SCROLLLOCK off}")
    Else
        $Key = 1
        For $i = 0 To 5
            GUICtrlSetState ($Input[$i],$GUI_DISABLE)
        Next
        For $i = 0 To 2
            GUICtrlSetState ($Button[$i],$GUI_DISABLE)
        Next
        For $i = 0 To 2
            GUICtrlSetState ($Radio[$i],$GUI_DISABLE)
        Next
        GUICtrlSetState ($Checkbox,$GUI_DISABLE)
        SetHotKey()
        HotKeySet("{HOME}","ShowAll")
        If $Sound = 1 Then SoundPlay(@TempDir&"\Sound.wav")
        Send("{SCROLLLOCK on}")
    EndIf
EndFunc

Func SetHotKey()
    For $i = 0 To 5
        $keyword = GUICtrlRead($Input[$i])
        If $keyword <> "" Then
            $keyword = StringLower($keyword)
            $hotword = "HotKeyNum" & $i
            HotKeySet($keyword,$hotword)
        EndIf
    Next
EndFunc

Func CancelHotKey()
    For $i = 0 To 5
        $keyword = GUICtrlRead($Input[$i])
        If $keyword <> "" Then
            $keyword = StringLower($keyword)
            HotKeySet($keyword)
        EndIf
    Next
EndFunc

Func HotKeyNum0()
    Send("{NUMPAD7}")
EndFunc

Func HotKeyNum1()
    Send("{NUMPAD8}")
EndFunc

Func HotKeyNum2()
    Send("{NUMPAD4}")
EndFunc

Func HotKeyNum3()
    Send("{NUMPAD5}")
EndFunc

Func HotKeyNum4()
    Send("{NUMPAD1}")
EndFunc

Func HotKeyNum5()
    Send("{NUMPAD2}")
EndFunc

Func ShowAll()
    If $K Then
        $K = 0
        Send("{[ up}")
        Send("{] up}")
    Else
        $K = 1
        Send("{[ down}")
        Send("{] down}")
    EndIf
EndFunc
申明:本站资源大部分来自网络,如果无意侵犯了你的权利,请及时通知我们 AutoIt@FoxMail.Com,我们将尽快处理
Copyright © 2008-2009 随便复制 共享精神 人人有责 All Right Reserved
粤ICP备08009024号