festgelegte zeit = tastendruck

  • Hi, sorry, wenn die Frage den einem oder anderem evtl. bischen billig vorkommt, aber das ist mein erster Versuch mit eine Programiersprache. :P

    Also zum einen hab ich mich schon erfolgreich mit der GUI auseinander gesetzt.
    Zum andern weiß ich aber nicht, wie ich folgendes realisieren soll.
    Ich habe einen Input ($Input1) , welcher erst nach dem aktivieren einer Checkbox($Checkbox1) aktiviert werden soll, und außerdem soll nach dem ablaufen einer Zeit, welche in $Input1 eingegeben wurde ein Tastendruck z.B. F4 in einem anderen Programm simuliert werden.

    ich danke Euch schonmal :D

  • Hi luchneonette,
    Willkommen erstmal im Board :).
    Wenn du uns deine Anfangsversuche noch posten würdest, könnten wir da mehr anfangen. Inputs kannst du mit GuiCtrlSetstate($Input1, $GUI_ENABLE) bzw. $GUI_DISABLE aktivieren/deaktivieren. Herauslesen der Zeit machst du mit GuiCtrlRead($Input1). Anschließend kannst ja das rausgelesene des Inputs in ein Sleep setzen. Versuch mal bissal rum und gib uns dann deinen Code, fals du nicht mehr weiter weisst :).

  • wow, sehr schnelle Antwort, danke.

    also mein Ansatz zum Aktivieren/Deaktivieren.
    Leider ist das Feld irgendwie immer deaktiviert,

    [autoit]


    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("test", 221, 383, 434, 271)
    $Label1 = GUICtrlCreateLabel("lalala", 16, 8, 106, 17)
    $Input1 = GUICtrlCreateInput("", 96, 48, 41, 21)
    $Checkbox1 = GUICtrlCreateCheckbox("", 64, 48, 17, 17)
    $Button1 = GUICtrlCreateButton("Start", 24, 336, 75, 25, 0)

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

    GUISetState(@SW_SHOW)
    if GUICtrlRead($Checkbox1) = 1 Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input1, $GUI_DISABLE)
    EndIf

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

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

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

    EndSwitch
    WEnd

    [/autoit]
    • Offizieller Beitrag

    Guckst du:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("test", 221, 383, 434, 271)
    $Label1 = GUICtrlCreateLabel("lalala", 16, 8, 106, 17)
    $Input1 = GUICtrlCreateInput("", 96, 48, 41, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Checkbox1 = GUICtrlCreateCheckbox("", 64, 48, 17, 17)
    $Button1 = GUICtrlCreateButton("Start", 24, 336, 75, 25, 0)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input1, $GUI_DISABLE)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • danke auch dir bugfix ;D

    so, das wäre der Stand der Dinge im Moment.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    $Form1 = GUICreate("test", 221, 383, 434, 271)
    $Label1 = GUICtrlCreateLabel("lalala", 16, 8, 106, 17)
    $Input1 = GUICtrlCreateInput("", 96, 48, 41, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Checkbox1 = GUICtrlCreateCheckbox("", 64, 48, 17, 17)
    $Button1 = GUICtrlCreateButton("Start", 24, 336, 75, 25, 0)
    $Button2 = GUICtrlCreateButton("Stop", 120, 336, 75, 25, 0)

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

    GUISetState(@SW_SHOW)
    Global $Timer1 = 0

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox1
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) Then
    GUICtrlSetState($Input1, $GUI_ENABLE)
    Else
    GUICtrlSetState($Input1, $GUI_DISABLE)
    EndIf
    EndSwitch
    Select
    Case $nMsg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $nMsg = $Button1
    checkprocess()
    druecken()
    EndSelect
    WEnd

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

    func checkprocess()
    If ProcessExists("icq.exe") Then
    WinActivate("ICQ")
    WinSetState("ICQ","",@SW_ENABLE)
    Else
    MsgBox(0, 'Fehl0R', 'prog nich gestartet un so')
    EndIf
    EndFunc

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

    Func druecken()
    If GUICtrlRead($Checkbox1) = 1 Then
    $delay = GUICtrlRead($Input1)
    sleep($delay)
    send("{F5}")
    EndIf
    EndFunc

    [/autoit]

    edit: so funktioniert eigentlich ganz gut, nur kann wie kann ich es so einstellen, dass die Taste nicht nur einmal, sondern immerwieder nach der eingestellten zeit gedrückt wird. Bis man den Button2 drückt?

    2 Mal editiert, zuletzt von luncheonette (28. April 2008 um 22:20)