Brauche Hilfe bei Keybinder

  • HotKeySet ohne 2ten Parameter deaktiviert den HotKey. Also bei mir würde das so aussehen (Ist mit Arrays natürlich einfacher :P):

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIListView.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $aKeyBinds[1][2]
    $aKeyBinds[0][0] = 0

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("KeyBinder", 400, 385)
    $cListView_Keys = GUICtrlCreateListView("Key|Text", 5, 5, 390, 290)
    $cInput_Key = GUICtrlCreateInput("Key", 5, 300, 60, 20)
    $cInput_Text = GUICtrlCreateInput("Text", 70, 300, 325, 20)
    $cButton_AddKey = GUICtrlCreateButton("Hinzufügen", 5, 325, 390, 25)
    $cButton_DeleteKey = GUICtrlCreateButton("Löschen", 5, 355, 390, 25)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hWnd)
    GUICtrlSetOnEvent($cButton_AddKey, "_AddKeyBind")
    GUICtrlSetOnEvent($cButton_DeleteKey, "_DeleteKeyBind")

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _AddKeyBind()
    If GUICtrlRead($cInput_Key) = "" Or GUICtrlRead($cInput_Text) = "" Then Return

    [/autoit] [autoit][/autoit] [autoit]

    $aKeyBinds[0][0] += 1
    ReDim $aKeyBinds[$aKeyBinds[0][0] + 1][2]

    [/autoit] [autoit][/autoit] [autoit]

    $aKeyBinds[$aKeyBinds[0][0]][0] = GUICtrlRead($cInput_Key)
    $aKeyBinds[$aKeyBinds[0][0]][1] = GUICtrlRead($cInput_Text)
    HotKeySet($aKeyBinds[$aKeyBinds[0][0]][0], "_HotKeyEvent")
    _UpdateKeyList()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HotKeyEvent()
    For $i = 1 To $aKeyBinds[0][0]
    HotKeySet($aKeyBinds[$i][0])
    Next
    For $i = 1 To $aKeyBinds[0][0]
    If @HotKeyPressed = $aKeyBinds[$i][0] Then Send($aKeyBinds[$i][1])
    Next
    For $i = 1 To $aKeyBinds[0][0]
    HotKeySet($aKeyBinds[$i][0], "_HotKeyEvent")
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _UpdateKeyList()
    _GUICtrlListView_BeginUpdate($cListView_Keys)
    _GUICtrlListView_DeleteAllItems($cListView_Keys)
    For $i = 1 To $aKeyBinds[0][0]
    GUICtrlCreateListViewItem($aKeyBinds[$i][0] & "|" & $aKeyBinds[$i][1], $cListView_Keys)
    Next
    _GUICtrlListView_EndUpdate($cListView_Keys)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DeleteKeyBind()
    $iCurSel = _GUICtrlListView_GetSelectionMark($cListView_Keys)
    If $iCurSel = -1 Then Return

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet($aKeyBinds[$iCurSel + 1][0])
    _ArrayDelete($aKeyBinds, $iCurSel + 1)
    $aKeyBinds[0][0] -= 1
    _UpdateKeyList()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Ich weiß weder was ein Parameter ist, noch was Array für ne Bedeutung hat, obwohl ich mir den
    Befehl mal durch gelesen habe und ich hab ihn trotzdem nicht verstanden. Kannst Du mir bitte sagen was ich und wo
    ich etwas einsetzen muss damit der Bug gefixt wird?

  • Zitat

    Ich weiß weder was ein Parameter ist, noch was Array für ne Bedeutung hat


    Ein Parameter ist das hier: Funktion("Parameter1", "Parameter2"). Für Arrays gibt es bestimmt irgendwo ein Tutorial...

    Zitat

    Kannst Du mir bitte sagen was ich und wo
    ich etwas einsetzen muss damit der Bug gefixt wird?


    Bevor der Text gesendet wird musst du alle Hotkeys deaktivieren und danach wieder aktivieren.

    [autoit]

    HotKeySet("F") ;deaktiviert den HotKey F. Das musst du dann für alle machen.

    [/autoit]


    Und da das mit Arrays um einiges kürzer ist solltest du dich bei Gelegenheit mit diesen vertraut machen ;).

  • Ich hab mal meinen KeyBinder etwas umgeschrieben, er hat jetzt auch Checkboxen die eine deaktivierung ermöglichen. Vielleicht kann es ja jemand gebrauchen. :D

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GUIListView.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $aKeyBinds[1][2]
    $aKeyBinds[0][0] = 0

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("KeyBinder", 400, 385)
    $cListView_Keys = GUICtrlCreateListView("Key|Text", 5, 5, 390, 290, 0x0004, 0x00000004)
    $cInput_Key = GUICtrlCreateInput("Key", 5, 300, 60, 20)
    $cInput_Text = GUICtrlCreateInput("Text", 70, 300, 325, 20)
    $cButton_AddKey = GUICtrlCreateButton("Hinzufügen", 5, 325, 390, 25)
    $cButton_DeleteKey = GUICtrlCreateButton("Löschen", 5, 355, 390, 25)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hWnd)
    GUICtrlSetOnEvent($cButton_AddKey, "_AddKeyBind")
    GUICtrlSetOnEvent($cButton_DeleteKey, "_DeleteKeyBind")

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(500)
    For $i = 0 To _GUICtrlListView_GetItemCount($cListView_Keys) -1
    If _GUICtrlListView_GetItemChecked($cListView_Keys, $i) Then
    HotKeySet($aKeyBinds[$i + 1][0], "_HotKeyEvent")
    Else
    HotKeySet($aKeyBinds[$i + 1][0])
    EndIf
    Next
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _AddKeyBind()
    If GUICtrlRead($cInput_Key) = "" Or GUICtrlRead($cInput_Text) = "" Then Return

    [/autoit] [autoit][/autoit] [autoit]

    $aKeyBinds[0][0] += 1
    ReDim $aKeyBinds[$aKeyBinds[0][0] + 1][2]

    [/autoit] [autoit][/autoit] [autoit]

    $aKeyBinds[$aKeyBinds[0][0]][0] = GUICtrlRead($cInput_Key)
    $aKeyBinds[$aKeyBinds[0][0]][1] = GUICtrlRead($cInput_Text)
    _UpdateKeyList()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HotKeyEvent()
    For $i = 1 To $aKeyBinds[0][0]
    HotKeySet($aKeyBinds[$i][0])
    Next
    For $i = 1 To $aKeyBinds[0][0]
    If @HotKeyPressed = $aKeyBinds[$i][0] Then Send($aKeyBinds[$i][1])
    Next
    For $i = 1 To $aKeyBinds[0][0]
    HotKeySet($aKeyBinds[$i][0], "_HotKeyEvent")
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _UpdateKeyList()
    _GUICtrlListView_BeginUpdate($cListView_Keys)
    _GUICtrlListView_DeleteAllItems($cListView_Keys)
    For $i = 1 To $aKeyBinds[0][0]
    GUICtrlCreateListViewItem($aKeyBinds[$i][0] & "|" & $aKeyBinds[$i][1], $cListView_Keys)
    Next
    _GUICtrlListView_EndUpdate($cListView_Keys)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _DeleteKeyBind()
    $iCurSel = _GUICtrlListView_GetSelectionMark($cListView_Keys)
    If $iCurSel = -1 Then Return

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet($aKeyBinds[$iCurSel + 1][0])
    _ArrayDelete($aKeyBinds, $iCurSel + 1)
    $aKeyBinds[0][0] -= 1
    _UpdateKeyList()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Den Befehl den Du mir gegeben hast, kann ich nicht einfach einfügen.
    Die Sache ist die, das der User durch eine ComboBox sein Hotkey selber auswählt.

    Hier mein Script:

    Spoiler anzeigen
    [autoit]

    ; Script Start

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=C:\Users\Alex\Desktop\Koda GUI's\Keybinder GUI.kxf
    $Form1 = GUICreate("SA:MP Keybinder by cOraXx", 1290, 858, 196, 126)
    $Input1 = GUICtrlCreateInput("", 8, 8, 417, 21)
    $Combo1 = GUICtrlCreateCombo("", 432, 8, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Checkbox1 = GUICtrlCreateCheckbox("Aktivieren", 528, 8, 65, 25)
    $Input2 = GUICtrlCreateInput("", 8, 32, 417, 21)
    $Input3 = GUICtrlCreateInput("", 8, 56, 417, 21)
    $Input4 = GUICtrlCreateInput("", 8, 80, 417, 21)
    $Input5 = GUICtrlCreateInput("", 8, 104, 417, 21)
    $Input6 = GUICtrlCreateInput("", 8, 128, 417, 21)
    $Input7 = GUICtrlCreateInput("", 8, 152, 417, 21)
    $Input8 = GUICtrlCreateInput("", 8, 176, 417, 21)
    $Input9 = GUICtrlCreateInput("", 8, 200, 417, 21)
    $Input10 = GUICtrlCreateInput("", 8, 224, 417, 21)
    $Combo2 = GUICtrlCreateCombo("", 432, 32, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo3 = GUICtrlCreateCombo("", 432, 56, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo4 = GUICtrlCreateCombo("", 432, 80, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo5 = GUICtrlCreateCombo("", 432, 104, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo6 = GUICtrlCreateCombo("", 432, 128, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo7 = GUICtrlCreateCombo("", 432, 152, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo8 = GUICtrlCreateCombo("", 432, 176, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo9 = GUICtrlCreateCombo("", 432, 200, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo10 = GUICtrlCreateCombo("", 432, 224, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Checkbox2 = GUICtrlCreateCheckbox("Aktivieren", 528, 32, 65, 25)
    $Checkbox3 = GUICtrlCreateCheckbox("Aktivieren", 528, 56, 65, 25)
    $Checkbox4 = GUICtrlCreateCheckbox("Aktivieren", 528, 80, 65, 25)
    $Checkbox5 = GUICtrlCreateCheckbox("Aktivieren", 528, 104, 65, 25)
    $Checkbox6 = GUICtrlCreateCheckbox("Aktivieren", 528, 128, 65, 25)
    $Checkbox7 = GUICtrlCreateCheckbox("Aktivieren", 528, 152, 65, 25)
    $Checkbox8 = GUICtrlCreateCheckbox("Aktivieren", 528, 176, 65, 25)
    $Checkbox9 = GUICtrlCreateCheckbox("Aktivieren", 528, 200, 65, 25)
    $Checkbox10 = GUICtrlCreateCheckbox("Aktivieren", 528, 224, 65, 25)
    $Checkbox11 = GUICtrlCreateCheckbox("ENTER", 600, 8, 65, 25)
    $Checkbox12 = GUICtrlCreateCheckbox("ENTER", 600, 32, 65, 25)
    $Checkbox13 = GUICtrlCreateCheckbox("ENTER", 600, 56, 65, 25)
    $Checkbox14 = GUICtrlCreateCheckbox("ENTER", 600, 80, 65, 25)
    $Checkbox15 = GUICtrlCreateCheckbox("ENTER", 600, 104, 65, 25)
    $Checkbox16 = GUICtrlCreateCheckbox("ENTER", 600, 128, 65, 25)
    $Checkbox17 = GUICtrlCreateCheckbox("ENTER", 600, 152, 65, 25)
    $Checkbox18 = GUICtrlCreateCheckbox("ENTER", 600, 176, 65, 25)
    $Checkbox19 = GUICtrlCreateCheckbox("ENTER", 600, 200, 65, 25)
    $Checkbox20 = GUICtrlCreateCheckbox("ENTER", 600, 224, 65, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind1()
    If @HotKeyPressed = GUICtrlRead($Combo1) Then
    HotKeySet(GUICtrlRead($Combo1))
    Send(GUICtrlRead($Input1),1)
    HotKeySet(GUICtrlRead($Combo1), "_Keybind1")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind2()
    If @HotKeyPressed = GUICtrlRead($Combo2) Then
    HotKeySet(GUICtrlRead($Combo2))
    Send(GUICtrlRead($Input2),1)
    HotKeySet(GUICtrlRead($Combo2), "_Keybind2")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind3()
    If @HotKeyPressed = GUICtrlRead($Combo3) Then
    HotKeySet(GUICtrlRead($Combo3))
    Send(GUICtrlRead($Input3), 1)
    HotKeySet(GUICtrlRead($Combo3), "_Keybind3")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind4()
    If @HotKeyPressed = GUICtrlRead($Combo4) Then
    HotKeySet(GUICtrlRead($Combo4))
    Send(GUICtrlRead($Input4), 1)
    HotKeySet(GUICtrlRead($Combo4), "_Keybind4")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind5()
    If @HotKeyPressed = GUICtrlRead($Combo5) Then
    HotKeySet(GUICtrlRead($Combo5))
    Send(GUICtrlRead($Input5), 1)
    HotKeySet(GUICtrlRead($Combo5), "_Keybind5")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind6()
    If @HotKeyPressed = GUICtrlRead($Combo6) Then
    HotKeySet(GUICtrlRead($Combo6))
    Send(GUICtrlRead($Input6), 1)
    HotKeySet(GUICtrlRead($Combo6), "_Keybind6")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind7()
    If @HotKeyPressed = GUICtrlRead($Combo7) Then
    HotKeySet(GUICtrlRead($Combo7))
    Send(GUICtrlRead($Input7), 1)
    HotKeySet(GUICtrlRead($Combo7), "_Keybind7")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind8()
    If @HotKeyPressed = GUICtrlRead($Combo8) Then
    HotKeySet(GUICtrlRead($Combo8))
    Send(GUICtrlRead($Input8), 1)
    HotKeySet(GUICtrlRead($Combo8), "_Keybind8")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind9()
    If @HotKeyPressed = GUICtrlRead($Combo9) Then
    HotKeySet(GUICtrlRead($Combo9))
    Send(GUICtrlRead($Input9), 1)
    HotKeySet(GUICtrlRead($Combo9), "_Keybind9")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind10()
    If @HotKeyPressed = GUICtrlRead($Combo10) Then
    HotKeySet(GUICtrlRead($Combo10))
    Send(GUICtrlRead($Input10), 1)
    HotKeySet(GUICtrlRead($Combo10), "_Keybind10")
    EndIf
    EndFunc
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo1), "_Keybind1")
    Else
    HotKeySet(GUICtrlRead($Combo1))
    EndIf

    Case $Checkbox2
    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo2), "_Keybind2")
    Else
    HotKeySet(GUICtrlRead($Combo2))
    EndIf

    Case $Checkbox3
    If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo3), "_Keybind3")
    Else
    HotKeySet(GUICtrlRead($Combo3))
    EndIf

    Case $Checkbox4
    If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo4), "_Keybind4")
    Else
    HotKeySet(GUICtrlRead($Combo4))
    EndIf

    Case $Checkbox5
    If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo5), "_Keybind5")
    Else
    HotKeySet(GUICtrlRead($Combo5))
    EndIf

    Case $Checkbox6
    If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo6), "_Keybind6")
    Else
    HotKeySet(GUICtrlRead($Combo6))
    EndIf

    Case $Checkbox7
    If GUICtrlRead($Checkbox7) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo7), "_Keybind7")
    Else
    HotKeySet(GUICtrlRead($Combo7))
    EndIf

    Case $Checkbox8
    If GUICtrlRead($Checkbox8) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo8), "_Keybind8")
    Else
    HotKeySet(GUICtrlRead($Combo8))
    EndIf

    Case $Checkbox9
    If GUICtrlRead($Checkbox9) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo9), "_Keybind9")
    Else
    HotKeySet(GUICtrlRead($Combo9))
    EndIf

    Case $Checkbox10
    If GUICtrlRead($Checkbox10) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo10), "_Keybind10")
    Else
    HotKeySet(GUICtrlRead($Combo10))
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Ich will aber meinen eigenen X( :(

    Wie kann ich den die "ENTER" Checkbox mit anbauen dass wen
    da ein Hacken ist, das nach dem Wort was eingegeben wurde ENTER
    gedrückt wird. Und falls der Hacken dort nicht ist, das dann kein
    ENTER gedrückt wird..

  • Wie kann ich den die "ENTER" Checkbox mit anbauen dass wen
    da ein Hacken ist, das nach dem Wort was eingegeben wurde ENTER
    gedrückt wird. Und falls der Hacken dort nicht ist, das dann kein
    ENTER gedrückt wird..


    Das ist einfach ;)

    Ändere die Variablen aller Enter Checkboxen, derart (macht die Sache einfacher):

    [autoit]

    $CheckboxEnter1 = GUICtrlCreateCheckbox("ENTER", 600, 8, 65, 25)

    [/autoit]

    und benutz diese Funktion

    [autoit]

    Func _Keybind1()
    If @HotKeyPressed = GUICtrlRead($Combo1) Then
    HotKeySet(GUICtrlRead($Combo1))
    Send(GUICtrlRead($Input1),1)
    If GUICtrlRead($CheckboxEnter1) = $GUI_CHECKED Then Send("{ENTER}")
    HotKeySet(GUICtrlRead($Combo1), "_Keybind1")
    EndIf
    EndFunc

    [/autoit]
  • @Cyberdyne

    [autoit]

    Func _Keybind1()
    If @HotKeyPressed = GUICtrlRead($Combo1) Then
    HotKeySet(GUICtrlRead($Combo1))
    Send(GUICtrlRead($Input1),1)
    If GUICtrlRead($CheckboxEnter1) = $GUI_CHECKED Then Send("{ENTER}")
    HotKeySet(GUICtrlRead($Combo1), "_Keybind1")
    EndIf
    EndFunc

    [/autoit]


    Dann wird EIN HotKeySet deaktiviert, damit es aber immer korrekt funktioniert müssen ALLE deaktiviert werden ;). Sonst geht das Wort "Test" zum Beispiel nicht wenn du einen HotKey auf S und auf T hast.
    Wie gesagt die einzige effektive Lösung erfordert meiner Meinung nach Array Wissen. Wieso versuchst du es nicht mal mit Arrays? Bei Problemen können wir dir ja helfen und Arrays sind ja auch außerhalb eines KeyBinders nützlich :D .

  • Ich kann kein Array einsetzen, weil ja der User selbst zu entscheiden hat
    welchen Hotkey er möchte durch eine ComboBox.

  • Dann wird EIN HotKeySet deaktiviert, damit es aber immer korrekt funktioniert müssen ALLE deaktiviert werden ;).


    Stimmt, hatte ich nicht bedacht.
    So, dann deaktivieren wir halt alle HotKeySet's ;)

    Spoiler anzeigen
    [autoit]

    Func _Keybind()
    ; Keybinds löschen
    HotKeySet(GUICtrlRead($Combo1))
    HotKeySet(GUICtrlRead($Combo2))
    HotKeySet(GUICtrlRead($Combo3))
    HotKeySet(GUICtrlRead($Combo4))
    HotKeySet(GUICtrlRead($Combo5))
    HotKeySet(GUICtrlRead($Combo6))
    HotKeySet(GUICtrlRead($Combo7))
    HotKeySet(GUICtrlRead($Combo8))
    HotKeySet(GUICtrlRead($Combo9))
    HotKeySet(GUICtrlRead($Combo10))

    [/autoit] [autoit][/autoit] [autoit]

    ;Keybinds ausführen
    If @HotKeyPressed = GUICtrlRead($Combo1) Then
    Send(GUICtrlRead($Input1),1)
    If GUICtrlRead($CheckboxEnter1) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo2) Then
    Send(GUICtrlRead($Input2),1)
    If GUICtrlRead($CheckboxEnter2) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo3) Then
    Send(GUICtrlRead($Input3), 1)
    If GUICtrlRead($CheckboxEnter3) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo4) Then
    Send(GUICtrlRead($Input4), 1)
    If GUICtrlRead($CheckboxEnter4) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo5) Then
    Send(GUICtrlRead($Input5), 1)
    If GUICtrlRead($CheckboxEnter5) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo6) Then
    Send(GUICtrlRead($Input6), 1)
    If GUICtrlRead($CheckboxEnter6) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo7) Then
    Send(GUICtrlRead($Input7), 1)
    If GUICtrlRead($CheckboxEnter7) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo8) Then
    Send(GUICtrlRead($Input8), 1)
    If GUICtrlRead($CheckboxEnter8) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo9) Then
    Send(GUICtrlRead($Input9), 1)
    If GUICtrlRead($CheckboxEnter9) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    If @HotKeyPressed = GUICtrlRead($Combo10) Then
    Send(GUICtrlRead($Input10), 1)
    If GUICtrlRead($CheckboxEnter10) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Keybinds aktivieren
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo1), "_Keybind")
    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo2), "_Keybind")
    If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo3), "_Keybind")
    If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo4), "_Keybind")
    If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo5), "_Keybind")
    If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo6), "_Keybind")
    If GUICtrlRead($Checkbox7) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo7), "_Keybind")
    If GUICtrlRead($Checkbox8) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo8), "_Keybind")
    If GUICtrlRead($Checkbox9) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo9), "_Keybind")
    If GUICtrlRead($Checkbox10) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo10), "_Keybind")
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo1), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo1))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox2
    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo2), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo2))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox3
    If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo3), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo3))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox4
    If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo4), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo4))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox5
    If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo5), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo5))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox6
    If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo6), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo6))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox7
    If GUICtrlRead($Checkbox7) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo7), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo7))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox8
    If GUICtrlRead($Checkbox8) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo8), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo8))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox9
    If GUICtrlRead($Checkbox9) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo9), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo9))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox10
    If GUICtrlRead($Checkbox10) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo10), "_Keybind")
    Else
    HotKeySet(GUICtrlRead($Combo10))
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Ich kann kein Array einsetzen, weil ja der User selbst zu entscheiden hat
    welchen Hotkey er möchte durch eine ComboBox.


    So hat es name22 nicht gemeint, sondern dass du alle Ctrl ID's in ein Array schreibst.
    Also statt

    [autoit]


    $var1 = ...
    $var2 = ...
    $var3 = ...
    $var4 = ...
    $var5 = ...

    [/autoit]

    schreibst du

    [autoit]


    Dim $var[5]
    $var[0] = ...
    $var[1] = ...
    $var[2] = ...
    $var[3] = ...
    $var[4] = ...

    [/autoit]
  • So sieht jetzt mein Script aus. Doch wenn ich die ausgewählte Combo Taste drücke,
    kommt nur die normale Funktion. Also kein Keybind.

    Spoiler anzeigen
    [autoit]

    ; Script Start

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=C:\Users\Alex\Desktop\Koda GUI's\Keybinder GUI.kxf
    $Form1 = GUICreate("SA:MP Keybinder by cOraXx", 1290, 858, 196, 126)
    $Input1 = GUICtrlCreateInput("", 8, 8, 417, 21)
    $Combo1 = GUICtrlCreateCombo("", 432, 8, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Checkbox1 = GUICtrlCreateCheckbox("Aktivieren", 528, 8, 65, 25)
    $Input2 = GUICtrlCreateInput("", 8, 32, 417, 21)
    $Input3 = GUICtrlCreateInput("", 8, 56, 417, 21)
    $Input4 = GUICtrlCreateInput("", 8, 80, 417, 21)
    $Input5 = GUICtrlCreateInput("", 8, 104, 417, 21)
    $Input6 = GUICtrlCreateInput("", 8, 128, 417, 21)
    $Input7 = GUICtrlCreateInput("", 8, 152, 417, 21)
    $Input8 = GUICtrlCreateInput("", 8, 176, 417, 21)
    $Input9 = GUICtrlCreateInput("", 8, 200, 417, 21)
    $Input10 = GUICtrlCreateInput("", 8, 224, 417, 21)
    $Combo2 = GUICtrlCreateCombo("", 432, 32, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo3 = GUICtrlCreateCombo("", 432, 56, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo4 = GUICtrlCreateCombo("", 432, 80, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo5 = GUICtrlCreateCombo("", 432, 104, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo6 = GUICtrlCreateCombo("", 432, 128, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo7 = GUICtrlCreateCombo("", 432, 152, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo8 = GUICtrlCreateCombo("", 432, 176, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo9 = GUICtrlCreateCombo("", 432, 200, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo10 = GUICtrlCreateCombo("", 432, 224, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Checkbox2 = GUICtrlCreateCheckbox("Aktivieren", 528, 32, 65, 25)
    $Checkbox3 = GUICtrlCreateCheckbox("Aktivieren", 528, 56, 65, 25)
    $Checkbox4 = GUICtrlCreateCheckbox("Aktivieren", 528, 80, 65, 25)
    $Checkbox5 = GUICtrlCreateCheckbox("Aktivieren", 528, 104, 65, 25)
    $Checkbox6 = GUICtrlCreateCheckbox("Aktivieren", 528, 128, 65, 25)
    $Checkbox7 = GUICtrlCreateCheckbox("Aktivieren", 528, 152, 65, 25)
    $Checkbox8 = GUICtrlCreateCheckbox("Aktivieren", 528, 176, 65, 25)
    $Checkbox9 = GUICtrlCreateCheckbox("Aktivieren", 528, 200, 65, 25)
    $Checkbox10 = GUICtrlCreateCheckbox("Aktivieren", 528, 224, 65, 25)
    $Checkbox11 = GUICtrlCreateCheckbox("ENTER", 600, 8, 65, 25)
    $Checkbox12 = GUICtrlCreateCheckbox("ENTER", 600, 32, 65, 25)
    $Checkbox13 = GUICtrlCreateCheckbox("ENTER", 600, 56, 65, 25)
    $Checkbox14 = GUICtrlCreateCheckbox("ENTER", 600, 80, 65, 25)
    $Checkbox15 = GUICtrlCreateCheckbox("ENTER", 600, 104, 65, 25)
    $Checkbox16 = GUICtrlCreateCheckbox("ENTER", 600, 128, 65, 25)
    $Checkbox17 = GUICtrlCreateCheckbox("ENTER", 600, 152, 65, 25)
    $Checkbox18 = GUICtrlCreateCheckbox("ENTER", 600, 176, 65, 25)
    $Checkbox19 = GUICtrlCreateCheckbox("ENTER", 600, 200, 65, 25)
    $Checkbox20 = GUICtrlCreateCheckbox("ENTER", 600, 224, 65, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    If @HotKeyPressed = GUICtrlRead($Combo1) Then
    Send(GUICtrlRead($Input1),1)
    If GUICtrlRead($Checkbox11) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf


    If @HotKeyPressed = GUICtrlRead($Combo2) Then
    Send(GUICtrlRead($Input2),1)
    If GUICtrlRead($Checkbox12) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    If @HotKeyPressed = GUICtrlRead($Combo3) Then
    Send(GUICtrlRead($Input3), 1)
    If GUICtrlRead($Checkbox13) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If @HotKeyPressed = GUICtrlRead($Combo4) Then
    Send(GUICtrlRead($Input4), 1)
    If GUICtrlRead($Checkbox14) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    If @HotKeyPressed = GUICtrlRead($Combo5) Then
    Send(GUICtrlRead($Input5), 1)
    If GUICtrlRead($Checkbox15) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    If @HotKeyPressed = GUICtrlRead($Combo6) Then
    Send(GUICtrlRead($Input6), 1)
    If GUICtrlRead($Checkbox16) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    If @HotKeyPressed = GUICtrlRead($Combo7) Then
    Send(GUICtrlRead($Input7), 1)
    If GUICtrlRead($Checkbox17) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    If @HotKeyPressed = GUICtrlRead($Combo8) Then
    Send(GUICtrlRead($Input8), 1)
    If GUICtrlRead($Checkbox18) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    If @HotKeyPressed = GUICtrlRead($Combo9) Then
    Send(GUICtrlRead($Input9), 1)
    If GUICtrlRead($Checkbox19) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    If @HotKeyPressed = GUICtrlRead($Combo10) Then
    Send(GUICtrlRead($Input10), 1)
    If GUICtrlRead($Checkbox20) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf

    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo1), "_Keybind1")
    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo2), "_Keybind2")
    If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo3), "_Keybind3")
    If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo4), "_Keybind4")
    If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo5), "_Keybind5")
    If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo6), "_Keybind6")
    If GUICtrlRead($Checkbox7) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo7), "_Keybind7")
    If GUICtrlRead($Checkbox8) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo8), "_Keybind8")
    If GUICtrlRead($Checkbox9) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo9), "_Keybind9")
    If GUICtrlRead($Checkbox10) = $GUI_CHECKED Then HotKeySet(GUICtrlRead($Combo10),"_Keybind10")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo1), "_Keybind1")
    Else
    HotKeySet(GUICtrlRead($Combo1))
    EndIf

    Case $Checkbox2
    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo2), "_Keybind2")
    Else
    HotKeySet(GUICtrlRead($Combo2))
    EndIf

    Case $Checkbox3
    If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo3), "_Keybind3")
    Else
    HotKeySet(GUICtrlRead($Combo3))
    EndIf

    Case $Checkbox4
    If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo4), "_Keybind4")
    Else
    HotKeySet(GUICtrlRead($Combo4))
    EndIf

    Case $Checkbox5
    If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo5), "_Keybind5")
    Else
    HotKeySet(GUICtrlRead($Combo5))
    EndIf

    Case $Checkbox6
    If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo6), "_Keybind6")
    Else
    HotKeySet(GUICtrlRead($Combo6))
    EndIf

    Case $Checkbox7
    If GUICtrlRead($Checkbox7) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo7), "_Keybind7")
    Else
    HotKeySet(GUICtrlRead($Combo7))
    EndIf

    Case $Checkbox8
    If GUICtrlRead($Checkbox8) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo8), "_Keybind8")
    Else
    HotKeySet(GUICtrlRead($Combo8))
    EndIf

    Case $Checkbox9
    If GUICtrlRead($Checkbox9) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo9), "_Keybind9")
    Else
    HotKeySet(GUICtrlRead($Combo9))
    EndIf

    Case $Checkbox10
    If GUICtrlRead($Checkbox10) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo10), "_Keybind10")
    Else
    HotKeySet(GUICtrlRead($Combo10))
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Was hast du da gemacht 8|
    Schau dir nochmal meinen Spoiler an, mach am Besten Copy & Paste, da fehlt die hälfte...

    ...und ändere in deinem Skript alle Zeilen die so aufgebaut sind

    [autoit]

    $Checkbox11 = GUICtrlCreateCheckbox("ENTER", 600, ..., 65, 25)
    $Checkbox12 = GUICtrlCreateCheckbox("ENTER", 600, ..., 65, 25)
    ;...

    [/autoit]


    in dieser Art

    [autoit]

    $CheckboxEnter1 = GUICtrlCreateCheckbox("ENTER", 600, ..., 65, 25)
    $CheckboxEnter2 = GUICtrlCreateCheckbox("ENTER", 600, ..., 65, 25)
    ;...

    [/autoit]

    dann müsste es klappen.

    Einmal editiert, zuletzt von Cyberdyne (24. November 2010 um 00:40)

  • So?

    Spoiler anzeigen
    [autoit]

    ; Script Start

    [/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=C:\Users\Alex\Desktop\Koda GUI's\Keybinder GUI.kxf
    $Form1 = GUICreate("SA:MP Keybinder by cOraXx", 1290, 858, 196, 126)
    $Input1 = GUICtrlCreateInput("", 8, 8, 417, 21)
    $Combo1 = GUICtrlCreateCombo("", 432, 8, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Checkbox1 = GUICtrlCreateCheckbox("Aktivieren", 528, 8, 65, 25)
    $Input2 = GUICtrlCreateInput("", 8, 32, 417, 21)
    $Input3 = GUICtrlCreateInput("", 8, 56, 417, 21)
    $Input4 = GUICtrlCreateInput("", 8, 80, 417, 21)
    $Input5 = GUICtrlCreateInput("", 8, 104, 417, 21)
    $Input6 = GUICtrlCreateInput("", 8, 128, 417, 21)
    $Input7 = GUICtrlCreateInput("", 8, 152, 417, 21)
    $Input8 = GUICtrlCreateInput("", 8, 176, 417, 21)
    $Input9 = GUICtrlCreateInput("", 8, 200, 417, 21)
    $Input10 = GUICtrlCreateInput("", 8, 224, 417, 21)
    $Combo2 = GUICtrlCreateCombo("", 432, 32, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo3 = GUICtrlCreateCombo("", 432, 56, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo4 = GUICtrlCreateCombo("", 432, 80, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo5 = GUICtrlCreateCombo("", 432, 104, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo6 = GUICtrlCreateCombo("", 432, 128, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo7 = GUICtrlCreateCombo("", 432, 152, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo8 = GUICtrlCreateCombo("", 432, 176, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo9 = GUICtrlCreateCombo("", 432, 200, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Combo10 = GUICtrlCreateCombo("", 432, 224, 89, 25)
    GUICtrlSetData(-1, "1|2|3|4|5|6|7|8|9|0|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|NUMPAD1|NUMPAD2|NUMPAD3|NUMPAD4|NUMPAD5|NUMPAD6|NUMPAD7|NUMPAD8|NUMPAD9|NUMPAD0|")
    $Checkbox2 = GUICtrlCreateCheckbox("Aktivieren", 528, 32, 65, 25)
    $Checkbox3 = GUICtrlCreateCheckbox("Aktivieren", 528, 56, 65, 25)
    $Checkbox4 = GUICtrlCreateCheckbox("Aktivieren", 528, 80, 65, 25)
    $Checkbox5 = GUICtrlCreateCheckbox("Aktivieren", 528, 104, 65, 25)
    $Checkbox6 = GUICtrlCreateCheckbox("Aktivieren", 528, 128, 65, 25)
    $Checkbox7 = GUICtrlCreateCheckbox("Aktivieren", 528, 152, 65, 25)
    $Checkbox8 = GUICtrlCreateCheckbox("Aktivieren", 528, 176, 65, 25)
    $Checkbox9 = GUICtrlCreateCheckbox("Aktivieren", 528, 200, 65, 25)
    $Checkbox10 = GUICtrlCreateCheckbox("Aktivieren", 528, 224, 65, 25)
    $Checkbox11 = GUICtrlCreateCheckbox("ENTER", 600, 8, 65, 25)
    $Checkbox12 = GUICtrlCreateCheckbox("ENTER", 600, 32, 65, 25)
    $Checkbox13 = GUICtrlCreateCheckbox("ENTER", 600, 56, 65, 25)
    $Checkbox14 = GUICtrlCreateCheckbox("ENTER", 600, 80, 65, 25)
    $Checkbox15 = GUICtrlCreateCheckbox("ENTER", 600, 104, 65, 25)
    $Checkbox16 = GUICtrlCreateCheckbox("ENTER", 600, 128, 65, 25)
    $Checkbox17 = GUICtrlCreateCheckbox("ENTER", 600, 152, 65, 25)
    $Checkbox18 = GUICtrlCreateCheckbox("ENTER", 600, 176, 65, 25)
    $Checkbox19 = GUICtrlCreateCheckbox("ENTER", 600, 200, 65, 25)
    $Checkbox20 = GUICtrlCreateCheckbox("ENTER", 600, 224, 65, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Func _Keybind1()
    If @HotKeyPressed = GUICtrlRead($Combo1) Then
    Send(GUICtrlRead($Input1),1)
    If GUICtrlRead($CheckboxEnter1) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind2 ()
    If @HotKeyPressed = GUICtrlRead($Combo2) Then
    Send(GUICtrlRead($Input2),1)
    If GUICtrlRead($CheckboxEnter2) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind3 ()
    If @HotKeyPressed = GUICtrlRead($Combo3) Then
    Send(GUICtrlRead($Input3), 1)
    If GUICtrlRead($CheckboxEnter3) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind4 ()
    If @HotKeyPressed = GUICtrlRead($Combo4) Then
    Send(GUICtrlRead($Input4), 1)
    If GUICtrlRead($CheckboxEnter4) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind5 ()
    If @HotKeyPressed = GUICtrlRead($Combo5) Then
    Send(GUICtrlRead($Input5), 1)
    If GUICtrlRead($CheckboxEnter5) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind6 ()
    If @HotKeyPressed = GUICtrlRead($Combo6) Then
    Send(GUICtrlRead($Input6), 1)
    If GUICtrlRead($CheckboxEnter6) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind7 ()
    If @HotKeyPressed = GUICtrlRead($Combo7) Then
    Send(GUICtrlRead($Input7), 1)
    If GUICtrlRead($CheckboxEnter7) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind8 ()
    If @HotKeyPressed = GUICtrlRead($Combo8) Then
    Send(GUICtrlRead($Input8), 1)
    If GUICtrlRead($CheckboxEnter8) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind9 ()
    If @HotKeyPressed = GUICtrlRead($Combo9) Then
    Send(GUICtrlRead($Input9), 1)
    If GUICtrlRead($CheckboxEnter9) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    Func _Keybind10 ()
    If @HotKeyPressed = GUICtrlRead($Combo10) Then
    Send(GUICtrlRead($Input10), 1)
    If GUICtrlRead($CheckboxEnter10) = $GUI_CHECKED Then Send("{ENTER}")
    EndIf
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If GUICtrlRead($Checkbox1) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo1), "_Keybind1")
    Else
    HotKeySet(GUICtrlRead($Combo1))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox2
    If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo2), "_Keybind2")
    Else
    HotKeySet(GUICtrlRead($Combo2))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox3
    If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo3), "_Keybind3")
    Else
    HotKeySet(GUICtrlRead($Combo3))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox4
    If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo4), "_Keybind4")
    Else
    HotKeySet(GUICtrlRead($Combo4))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox5
    If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo5), "_Keybind5")
    Else
    HotKeySet(GUICtrlRead($Combo5))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox6
    If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo6), "_Keybind6")
    Else
    HotKeySet(GUICtrlRead($Combo6))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox7
    If GUICtrlRead($Checkbox7) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo7), "_Keybind7")
    Else
    HotKeySet(GUICtrlRead($Combo7))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox8
    If GUICtrlRead($Checkbox8) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo8), "_Keybind8")
    Else
    HotKeySet(GUICtrlRead($Combo8))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox9
    If GUICtrlRead($Checkbox9) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo9), "_Keybind9")
    Else
    HotKeySet(GUICtrlRead($Combo9))
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Case $Checkbox10
    If GUICtrlRead($Checkbox10) = $GUI_CHECKED Then
    HotKeySet(GUICtrlRead($Combo10), "_Keybind10")
    Else
    HotKeySet(GUICtrlRead($Combo10))
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Warum machst du das ganze nicht in ein Array und nutzt ne For-Schleife? Der Code ist ja unnötig ellenlang.

  • Ich möchte meinen eigenen SAMP Keybinder für mich und meine Freunde.
    Ich war schon soweit das der Keybinder funktionierte, doch dann fand ich einen
    komplizierten Bug. Der Bug war: Sobald in einem Input ein Buchstabe/Zahl steht, der auch ein Hotkey ist,
    so wird er gedrückt.
    z.b.:

    Input1 = ,,Hallo ich bin Alex2cOraXx" - Hotkey: 1
    Input2 = ,,Und wer bist Du?" - Hotkey: 2

    ...
    Sobald ich 1 drücke erscheint der Text: ,,Hallo ich bin Alex Und wer bist Du?"

    Da die Zahl 2 ein Hotkey ist, wird sie ja im Input1 gedrückt und somit aktiviert sich der
    Input2. Das soll aber nicht passieren.