Pause von Hotkeys bei bestimmten Hotkey

  • Moin,

    Erstmal das Böse ;) Ich komm eigl aus dem AHK Bereich und suche nach alternativen.

    In der regel nutz ich solch sprechen für kleine helferlein die mir den Alltag erleichtern. Doch möcht ich auch Keybinder machen.


    Das Problem:
    Hat man ein Hotkey mit "HotKeySet" deklariert und auch die Func dazu gemacht, wird der Hotkey ja auch beim Schreiben gesendet, genau das soll verhindert werden.

    Nun die frage

    AHK hatte ein Suspend In AutoIt gibt es ja die Pause,

    Wie kann ich es nun am besten lösen das dass Script in die Pause geht wenn man selbst "t" drückt und erst dann wieder aufwacht wenn man "{enter}" oder {ESC} drückt

    Ach falls es von relevanz ist, ich nutze ControlSend

    Und hier das was ich bisher habe (ohne den lösungsversuch).
    Das was ich bis Dato habe ist mithilfe des Wiki(was grottig ist) Die Hilfe(Super!) und Google

    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.8.1
    Author: Dux Aquila

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

    Script Function:
    Keybinder für GTA SA:MP

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

    #ce ----------------------------------------------------------------------------

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

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    $Name = IniRead(@ScriptDir & "\Config.ini", "User", "Name", "Dein Name")
    $Number = IniRead(@ScriptDir & "\Config.ini", "User", "Number", "Deine Telefonnummer")
    $Password = IniRead(@ScriptDir & "\Config.ini", "User", "Password", "Passwort")
    $EnterExitStatus =""
    $CarLock =""

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

    HotKeySet ( "p", "_AB")
    HotKeySet ( "1", "_CarLock")
    HotKeySet ( "2", "_EnterExit")
    $Form1 = GUICreate("Duxis First AutoIt3 Keybinder", 621, 445, 192, 124)
    $Background1 = GUICtrlCreatePic("C:\Users\Dux Aquila\Desktop\AutoIt3\Scripte\bg-01.jpg", 0, 0, 620, 444, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label1 = GUICtrlCreateLabel("Dein Name", 32, 40, 57, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $InputName = GUICtrlCreateInput($Name, 32, 64, 121, 21)
    GUICtrlSetCursor (-1, 5)
    $Label2 = GUICtrlCreateLabel("Deine Telefonnummer", 32, 96, 108, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $InputTelnummer = GUICtrlCreateInput($Number, 32, 120, 121, 21)
    $Label3 = GUICtrlCreateLabel("Dein Passwort", 32, 160, 72, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $InputPassword = GUICtrlCreateInput($Password, 32, 184, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $ButtonSave = GUICtrlCreateButton("Speichern", 520, 24, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $ButtonSave
    IniWrite(@ScriptDir & "\Config.ini", "User", "Name", GuiCtrlRead($InputName))
    IniWrite(@ScriptDir & "\Config.ini", "User", "Number", GuiCtrlRead($InputTelnummer))
    IniWrite(@ScriptDir & "\Config.ini", "User", "Password", GuiCtrlRead($InputPassword))

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

    EndSwitch
    WEnd

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

    Func _AB()
    ControlSend("","","","t/p Guten Tag {ENTER}")
    Sleep(300)
    ControlSend("","","","t Sie sind mit dem Anschluss von " &$Name & " Verbunden {ENTER}")
    EndFunc

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

    Func _CarLock()
    if $CarLock = 1 Then
    $CarLock = "0"
    ControlSend("","","","t/Carlock {ENTER}")
    Sleep(300)
    ControlSend("","","","t/me Macht sein Auto auf {ENTER}")
    Else
    $CarLock = "1"
    ControlSend("","","","t/Carlock {ENTER}")
    Sleep(300)
    ControlSend("","","","t/me Macht sein Auto zu {ENTER}")
    EndIf
    EndFunc

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

    Func _EnterExit()
    If $EnterExitStatus = 1 Then
    $EnterExitStatus = "0"
    ControlSend("","","","t/Exit {ENTER}")
    Sleep(300)
    ControlSend("","","","t/me Verlässt das Gebäude {ENTER}")
    Else
    $EnterExitStatus = "1"
    ControlSend("","","","t/Enter {ENTER}")
    Sleep(300)
    ControlSend("","","","t/me Betritt das Gebäude {ENTER}")
    EndIf
    EndFunc

    [/autoit]
  • Sorry für den Doppelpost

    Ich hab das nun mal mit ner Var gelöst, doch da muss es doch was einfacheres geben. Wie gesagt bin Anfänger und bin recht verwöhnt von AHK

    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.8.1
    Author: Dux Aquila

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

    Script Function:
    Keybinder für GTA SA:MP

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

    #ce ----------------------------------------------------------------------------

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

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    $Name = IniRead(@ScriptDir & "\Config.ini", "User", "Name", "Dein Name")
    $Number = IniRead(@ScriptDir & "\Config.ini", "User", "Number", "Deine Telefonnummer")
    $Password = IniRead(@ScriptDir & "\Config.ini", "User", "Password", "Passwort")
    $EnterExitStatus =""
    $CarLock =""
    $Suspend = ""
    HotKeySet ( "p", "_AB")
    HotKeySet ( "1", "_CarLock")
    HotKeySet ( "2", "_EnterExit")
    HotKeySet ( "t", "_Suspend")
    HotKeySet ( "{ESC}", "_Break")
    HotKeySet ( "{ENTER}", "_Break2")

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

    $Form1 = GUICreate("Duxis First AutoIt3 Keybinder", 621, 445, 192, 124)
    $Background1 = GUICtrlCreatePic("C:\Users\Dux Aquila\Desktop\AutoIt3\Scripte\bg-01.jpg", 0, 0, 620, 444, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label1 = GUICtrlCreateLabel("Dein Name", 32, 40, 57, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $InputName = GUICtrlCreateInput($Name, 32, 64, 121, 21)
    GUICtrlSetCursor (-1, 5)
    $Label2 = GUICtrlCreateLabel("Deine Telefonnummer", 32, 96, 108, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $InputTelnummer = GUICtrlCreateInput($Number, 32, 120, 121, 21)
    $Label3 = GUICtrlCreateLabel("Dein Passwort", 32, 160, 72, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetBkColor(-1, 0x000000)
    $InputPassword = GUICtrlCreateInput($Password, 32, 184, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $ButtonSave = GUICtrlCreateButton("Speichern", 520, 24, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $ButtonSave
    IniWrite(@ScriptDir & "\Config.ini", "User", "Name", GuiCtrlRead($InputName))
    IniWrite(@ScriptDir & "\Config.ini", "User", "Number", GuiCtrlRead($InputTelnummer))
    IniWrite(@ScriptDir & "\Config.ini", "User", "Password", GuiCtrlRead($InputPassword))

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

    EndSwitch
    WEnd

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

    Func _AB()
    If $Suspend = 0 Then
    ControlSend("GTA:SA:MP","","","t/p Guten Tag {ENTER}")
    Sleep(300)
    ControlSend("GTA:SA:MP","","","t Sie sind mit dem Anschluss von " &$Name & " Verbunden {ENTER}")
    Else
    ControlSend("GTA:SA:MP","","","p")
    EndIf
    EndFunc

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

    Func _CarLock()
    If $Suspend = 0 Then
    if $CarLock = 1 Then
    $CarLock = "0"
    ControlSend("GTA:SA:MP","","","t/Carlock {ENTER}")
    Sleep(300)
    ControlSend("GTA:SA:MP","","","t/me Macht sein Auto auf {ENTER}")
    Else
    $CarLock = "1"
    ControlSend("GTA:SA:MP","","","t/Carlock {ENTER}")
    Sleep(300)
    ControlSend("GTA:SA:MP","","","t/me Macht sein Auto zu {ENTER}")
    EndIf
    Else
    ControlSend("GTA:SA:MP","","","1")
    EndIf
    EndFunc

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

    Func _EnterExit()
    if $Suspend = 0 Then
    If $EnterExitStatus = 1 Then
    $EnterExitStatus = "0"
    ControlSend("GTA:SA:MP","","","t/Exit {ENTER}")
    Sleep(300)
    ControlSend("GTA:SA:MP","","","t/me Verlässt das Gebäude {ENTER}")
    Else
    $EnterExitStatus = "1"
    ControlSend("GTA:SA:MP","","","t/Enter {ENTER}")
    Sleep(300)
    ControlSend("GTA:SA:MP","","","t/me Betritt das Gebäude {ENTER}")
    EndIf
    Else
    ControlSend("GTA:SA:MP","","","2")
    EndIf
    EndFunc

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

    Func _Suspend()
    ControlSend("GTA:SA:MP","","","t")
    $Suspend = "1"
    EndFunc

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

    Func _Break()
    ControlSend("GTA:SA:MP","","","{ESC}")
    $Suspend ="0"
    EndFunc

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

    Func _Break2()
    ControlSend("GTA:SA:MP","","","{ENTER}")
    $Suspend ="0"
    EndFunc

    [/autoit]
  • Wie gesagt bin Anfänger und bin recht verwöhnt von AHK

    Anscheinend hast du die Forenregeln:

    nicht gelesen. und da

    [autoit]

    ControlSend("GTA:SA:MP

    [/autoit]

    darin vorkommt und GTA:SA:MP nun einmal ein Spiel ist Vote for Close

    mfg autoBert