Send an aktives Fenster

  • Schaut euch mal bitte das hier an:

    Spoiler anzeigen
    [autoit]


    Func set_axes()
    If WinActive("Reference", "Reference Editor ID:") Then
    ControlSetText("Reference", "Reference Editor ID:", 1095, GUICtrlRead($axe_x))
    ControlSetText("Reference", "Reference Editor ID:", 1096, GUICtrlRead($axe_y))
    ControlSetText("Reference", "Reference Editor ID:", 1097, GUICtrlRead($axe_z))
    Else
    $win = WinGetTitle(WinActive(""))
    MsgBox(0, "", $win)
    _SendMessage($win, "{F5}")
    EndIf
    EndFunc

    [/autoit]


    Das ganze wird über ein HotKeySet gesteuert, der Hotkey ist F5. Wenn das "Reference"-Fenster aktiv ist, sollen die Werte eingetragen werden. Das klappt auch.
    Sollte aber ein anderes Fenster aktiv sein, soll an dieses Fenster F5 gesendet werden.
    Aber es geht nicht. Entweder ich bekomme komplett falsche Fenstertitel(z.B. bei FF) oder es passiert einfach nix.

  • Ja, dachte ich auch. Aber da tat sich halt gar nix.
    Deshalb kam ich auf die Idee, das so kompliziert zu machen, damit der Befehl auch ja korrekt ankommt.

    Und jetzt überlege ich, ob der BEfehl gar nicht ankommt, weil ich ständig falsche Titel bekomme, oder weil ich einen Fehler drin habe.

  • Ja das wir so sein, weil dein Fenster bestimmt nicht aktiv ist.
    Aber was passiert denn wenn du die Taste F5 selber drückst und nicht per Skript senden lässt.
    Hast du das mal versucht?

    MfG
    Der_Doc

  • Vielleicht bin ich ja noch nicht ganz aus dem Urlaub zurück aber was bitte erhoffst du dir von der Anweisung ?(

    [autoit]

    $win = WinGetTitle(WinActive(""))

    [/autoit]


    WinActive wird (wahrscheinlich) immer 1 zurück geben, irgendwas ist schließlich immer aktiv und einen Fenstertitel mit ner 1 drin zu finden dürfte glaube ich nicht der Sinn der Sache gewesen sein.

    Wolltest du das vielleicht erreichen ?

    [autoit]

    $win = WinGetTitle("[active]")

    [/autoit]


    allerdings könntest du statt dem ganzen Block auch wie schon vorgeschlagen

    [autoit]

    Send( "{F5}")

    [/autoit]

    nehmen

    Mal was anderes: Funktioniert _SendMessage überhaupt bei irgendwem ?