Umschalttasten bleiben nach Send-Befehlen eingerastet

  • Hallo,

    bei einigen meiner Skripte tritt das Problem auf, dass die Umschalttasten wie Shift/Strg/Windows eingerastet bleiben,
    nachdem ein entsprechender Send-Befehl ausgefuehrt wurde.
    Zwar läßt sich das Problem beheben, wenn man nach jeweils nach dem Ausführen des Skripts manuell die Umschalttasten drückt,
    aber gibt es da nicht eine bessere Lösung?

    Habe leider nichts dazu gefunden.

    Gruß und besten Dank

  • Weißt du was ein Minimalbeispiel ist?
    Dies ist ein Skript, welches so klein wie möglich ist aber den Fehler reproduziert.
    Es ist so geschrieben, dass es direkt ohne jegliche weitere Änderung lauffähig ist, so dass dein Problem von anderen direkt nachvollzogen werden kann.

    Der Vorteil für dich: Mehr und bessere Hilfe zu deinem Anliegen.

    Poste einfach mal ein entsprechendes Minimalbeispiel, dann sehen wir woran es liegen könnte.

  • Wahrscheinlich hast du solche Codefragmente in deinen Skripts:

    [autoit]

    Send('{SHIFTDOWN}xyz')

    [/autoit]

    Du musst auch die Taste wieder "lösen". Intern wird das so geregelt, dass ein entsprechendes Event versendet wird. Windows geht natürlich dann davon aus dass die Taste immer noch gedrückt ist wenn du diese nicht "wieder loslässt". Das machst du einfach mit den entsprechenden Gegenbefehl:

    [autoit]

    Send('{SHIFTDOWN}xyz{SHIFTUP}')

    [/autoit]
  • Jetzt habe ich den Fehler selbst gefunden :) :

    ich hatte eine Tastenkombi mit shift und alt gedrückt, um mehrere andere Tastenkombinationen automatisch abzufeuern.
    Offenbar hatte ich die Tasten noch zu lange gedrückt, als Autoit schon loslegte.

    jetzt habe ich bei der Funktion eine Pause (sleep()) vorweg eingebaut, drücke die Tasten nur noch kurz, und es läuft.

    Trotzdem noch die Frage: Gibt es noch eine Möglichkeit ohne sleep() ?