Wie mache ich das?
Brauche Hilfe bei Keybinder
-
- [ gelöst ]
-
cOraXx -
21. November 2010 um 20:21 -
Geschlossen -
Erledigt
-
-
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>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIListView.au3>
#include <Array.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $aKeyBinds[1][2]
[/autoit] [autoit][/autoit] [autoit]
$aKeyBinds[0][0] = 0$hWnd = GUICreate("KeyBinder", 400, 385)
[/autoit] [autoit][/autoit] [autoit]
$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)GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hWnd)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($cButton_AddKey, "_AddKeyBind")
GUICtrlSetOnEvent($cButton_DeleteKey, "_DeleteKeyBind")While Sleep(1000)
[/autoit] [autoit][/autoit] [autoit]
WEndFunc _AddKeyBind()
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($cInput_Key) = "" Or GUICtrlRead($cInput_Text) = "" Then Return$aKeyBinds[0][0] += 1
[/autoit] [autoit][/autoit] [autoit]
ReDim $aKeyBinds[$aKeyBinds[0][0] + 1][2]$aKeyBinds[$aKeyBinds[0][0]][0] = GUICtrlRead($cInput_Key)
[/autoit] [autoit][/autoit] [autoit]
$aKeyBinds[$aKeyBinds[0][0]][1] = GUICtrlRead($cInput_Text)
HotKeySet($aKeyBinds[$aKeyBinds[0][0]][0], "_HotKeyEvent")
_UpdateKeyList()
EndFuncFunc _HotKeyEvent()
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc _UpdateKeyList()
[/autoit] [autoit][/autoit] [autoit]
_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)
EndFuncFunc _DeleteKeyBind()
[/autoit] [autoit][/autoit] [autoit]
$iCurSel = _GUICtrlListView_GetSelectionMark($cListView_Keys)
If $iCurSel = -1 Then ReturnHotKeySet($aKeyBinds[$iCurSel + 1][0])
[/autoit] [autoit][/autoit] [autoit]
_ArrayDelete($aKeyBinds, $iCurSel + 1)
$aKeyBinds[0][0] -= 1
_UpdateKeyList()
EndFuncFunc _Exit()
[/autoit]
Exit
EndFunc -
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...ZitatKannst Du mir bitte sagen was ich und wo
ich etwas einsetzen muss damit der Bug gefixt wird?
[autoit]
Bevor der Text gesendet wird musst du alle Hotkeys deaktivieren und danach wieder aktivieren.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.
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIListView.au3>
#include <Array.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]Global $aKeyBinds[1][2]
[/autoit] [autoit][/autoit] [autoit]
$aKeyBinds[0][0] = 0$hWnd = GUICreate("KeyBinder", 400, 385)
[/autoit] [autoit][/autoit] [autoit]
$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)GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hWnd)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent($cButton_AddKey, "_AddKeyBind")
GUICtrlSetOnEvent($cButton_DeleteKey, "_DeleteKeyBind")While Sleep(500)
[/autoit] [autoit][/autoit] [autoit]
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
WEndFunc _AddKeyBind()
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($cInput_Key) = "" Or GUICtrlRead($cInput_Text) = "" Then Return$aKeyBinds[0][0] += 1
[/autoit] [autoit][/autoit] [autoit]
ReDim $aKeyBinds[$aKeyBinds[0][0] + 1][2]$aKeyBinds[$aKeyBinds[0][0]][0] = GUICtrlRead($cInput_Key)
[/autoit] [autoit][/autoit] [autoit]
$aKeyBinds[$aKeyBinds[0][0]][1] = GUICtrlRead($cInput_Text)
_UpdateKeyList()
EndFuncFunc _HotKeyEvent()
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncFunc _UpdateKeyList()
[/autoit] [autoit][/autoit] [autoit]
_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)
EndFuncFunc _DeleteKeyBind()
[/autoit] [autoit][/autoit] [autoit]
$iCurSel = _GUICtrlListView_GetSelectionMark($cListView_Keys)
If $iCurSel = -1 Then ReturnHotKeySet($aKeyBinds[$iCurSel + 1][0])
[/autoit] [autoit][/autoit] [autoit]
_ArrayDelete($aKeyBinds, $iCurSel + 1)
$aKeyBinds[0][0] -= 1
_UpdateKeyList()
EndFuncFunc _Exit()
[/autoit]
Exit
EndFunc -
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
[/autoit] [autoit][/autoit] [autoit]
$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 ###Func _Keybind1()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo1) Then
HotKeySet(GUICtrlRead($Combo1))
Send(GUICtrlRead($Input1),1)
HotKeySet(GUICtrlRead($Combo1), "_Keybind1")
EndIf
EndFuncFunc _Keybind2()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo2) Then
HotKeySet(GUICtrlRead($Combo2))
Send(GUICtrlRead($Input2),1)
HotKeySet(GUICtrlRead($Combo2), "_Keybind2")
EndIf
EndFuncFunc _Keybind3()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo3) Then
HotKeySet(GUICtrlRead($Combo3))
Send(GUICtrlRead($Input3), 1)
HotKeySet(GUICtrlRead($Combo3), "_Keybind3")
EndIf
EndFuncFunc _Keybind4()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo4) Then
HotKeySet(GUICtrlRead($Combo4))
Send(GUICtrlRead($Input4), 1)
HotKeySet(GUICtrlRead($Combo4), "_Keybind4")
EndIf
EndFuncFunc _Keybind5()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo5) Then
HotKeySet(GUICtrlRead($Combo5))
Send(GUICtrlRead($Input5), 1)
HotKeySet(GUICtrlRead($Combo5), "_Keybind5")
EndIf
EndFuncFunc _Keybind6()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo6) Then
HotKeySet(GUICtrlRead($Combo6))
Send(GUICtrlRead($Input6), 1)
HotKeySet(GUICtrlRead($Combo6), "_Keybind6")
EndIf
EndFuncFunc _Keybind7()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo7) Then
HotKeySet(GUICtrlRead($Combo7))
Send(GUICtrlRead($Input7), 1)
HotKeySet(GUICtrlRead($Combo7), "_Keybind7")
EndIf
EndFuncFunc _Keybind8()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo8) Then
HotKeySet(GUICtrlRead($Combo8))
Send(GUICtrlRead($Input8), 1)
HotKeySet(GUICtrlRead($Combo8), "_Keybind8")
EndIf
EndFuncFunc _Keybind9()
[/autoit] [autoit][/autoit] [autoit]
If @HotKeyPressed = GUICtrlRead($Combo9) Then
HotKeySet(GUICtrlRead($Combo9))
Send(GUICtrlRead($Input9), 1)
HotKeySet(GUICtrlRead($Combo9), "_Keybind9")
EndIf
EndFuncFunc _Keybind10()
[/autoit]
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 -
Dann kommst du wohl um Arrays nicht herum . Zumindest fällt mir keine andere Lösung ohne Arrays ein... In der zwischenzeit kannst du ja meinen verwenden :P.
-
Ich will aber meinen eigenen
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()
[/autoit]
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 -
Cool Danke. Kann man denn das Problem garnicht mehr anders beheben?
-
@Cyberdyne
[autoit]Func _Keybind1()
[/autoit]
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
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 . -
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'sSpoiler anzeigen
[autoit]Func _Keybind()
[/autoit] [autoit][/autoit] [autoit]
; 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));Keybinds ausführen
[/autoit] [autoit][/autoit] [autoit]
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; Keybinds aktivieren
[/autoit] [autoit][/autoit] [autoit]
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")
EndFuncWhile 1
[/autoit] [autoit][/autoit] [autoit]
$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))
EndIfCase $Checkbox2
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo2), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo2))
EndIfCase $Checkbox3
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo3), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo3))
EndIfCase $Checkbox4
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo4), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo4))
EndIfCase $Checkbox5
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo5), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo5))
EndIfCase $Checkbox6
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo6), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo6))
EndIfCase $Checkbox7
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox7) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo7), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo7))
EndIfCase $Checkbox8
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox8) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo8), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo8))
EndIfCase $Checkbox9
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox9) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo9), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo9))
EndIfCase $Checkbox10
[/autoit]
If GUICtrlRead($Checkbox10) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo10), "_Keybind")
Else
HotKeySet(GUICtrlRead($Combo10))
EndIf
EndSwitch
WEndIch kann kein Array einsetzen, weil ja der User selbst zu entscheiden hat
welchen Hotkey er möchte durch eine ComboBox.
[autoit]
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 = ...schreibst du
[autoit]
[/autoit]
Dim $var[5]
$var[0] = ...
$var[1] = ...
$var[2] = ...
$var[3] = ...
$var[4] = ... -
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
[/autoit] [autoit][/autoit] [autoit]
$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 ###If @HotKeyPressed = GUICtrlRead($Combo1) Then
[/autoit] [autoit][/autoit] [autoit]
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}")
EndIfIf @HotKeyPressed = GUICtrlRead($Combo4) Then
[/autoit] [autoit][/autoit] [autoit]
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")While 1
[/autoit]
$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 -
Was hast du da gemacht
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)
[/autoit]
$Checkbox12 = GUICtrlCreateCheckbox("ENTER", 600, ..., 65, 25)
;...
[autoit]
in dieser Art$CheckboxEnter1 = GUICtrlCreateCheckbox("ENTER", 600, ..., 65, 25)
[/autoit]
$CheckboxEnter2 = GUICtrlCreateCheckbox("ENTER", 600, ..., 65, 25)
;...dann müsste es klappen.
-
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
[/autoit] [autoit][/autoit] [autoit]
$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 ###Func _Keybind1()
[/autoit] [autoit][/autoit] [autoit]
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
EndFuncWhile 1
[/autoit] [autoit][/autoit] [autoit]
$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))
EndIfCase $Checkbox2
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox2) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo2), "_Keybind2")
Else
HotKeySet(GUICtrlRead($Combo2))
EndIfCase $Checkbox3
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox3) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo3), "_Keybind3")
Else
HotKeySet(GUICtrlRead($Combo3))
EndIfCase $Checkbox4
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox4) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo4), "_Keybind4")
Else
HotKeySet(GUICtrlRead($Combo4))
EndIfCase $Checkbox5
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox5) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo5), "_Keybind5")
Else
HotKeySet(GUICtrlRead($Combo5))
EndIfCase $Checkbox6
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox6) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo6), "_Keybind6")
Else
HotKeySet(GUICtrlRead($Combo6))
EndIfCase $Checkbox7
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox7) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo7), "_Keybind7")
Else
HotKeySet(GUICtrlRead($Combo7))
EndIfCase $Checkbox8
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox8) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo8), "_Keybind8")
Else
HotKeySet(GUICtrlRead($Combo8))
EndIfCase $Checkbox9
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($Checkbox9) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo9), "_Keybind9")
Else
HotKeySet(GUICtrlRead($Combo9))
EndIfCase $Checkbox10
[/autoit]
If GUICtrlRead($Checkbox10) = $GUI_CHECKED Then
HotKeySet(GUICtrlRead($Combo10), "_Keybind10")
Else
HotKeySet(GUICtrlRead($Combo10))
EndIf
EndSwitch
WEnd -
Warum machst du das ganze nicht in ein Array und nutzt ne For-Schleife? Der Code ist ja unnötig ellenlang.
-
Ich habe einfach keine Ahnung vom Array.
-
Um das ganze mal etwas abzukürzen:
Für was genau brauchst du das Script?
-
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. -