Probleme mit SEND-Befehl - STRG-Taste und/oder ALT-Taste werden ungewollt aktiviert

  • Hallo,

    ich arbeite mich gerade in AutoIt ein und habe folgende Frage:

    bei einem Befehl wie:

    [autoit]

    send("{HOME}^+{RIGHT}^m{ESC}{SHIFTDOWN}{RIGHT}{RIGHT}{SHIFTUP}{ESC}")

    [/autoit]

    rastet die ALT und/oder STRG-Taste immer wieder mal ein, was auch so bleibt, wenn die Funktion fertig durchlaufen ist.

    [autoit]

    send("{CTRLUP}")

    [/autoit]

    bzw {ALTUP} am Ende der Funktion bewirkt nichts, ich muß ALT und STRG manuell betätigen, um die Tasten wieder zu deaktivieren

    umgehen kann ich den Fehler, in dem ich den send-Befehl aufteile in mehrere send-Befehle, und jeweils eine Pause mit sleep einbaue.


    Kennt jemand den Fehler und kann mir einen Tip geben?

    Vielen Dank schonmal,

    Frank

  • Das wird als ein Tastendruck gesendent "{HOME}^+{RIGHT}^m" also "Home+STRG+SHIFT+Pfeiltasterechts+STRG+m" das kann denke ich mal nicht das sein was du willst und dürfte auch das Einrasten der STRG-Taste bewirken.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hallo Chip,

    OK ich habe einen Send-Befehl jetzt sicherheitshalber vom Recorder (Au3Record.exe) aufbauen lassen.

    Beispiel:

    [autoit]

    Send("{HOME}{CTRLDOWN}{SHIFTDOWN}{RIGHT}{CTRLUP}{SHIFTUP}{SHIFTDOWN}{CTRLDOWN}u{CTRLUP}{SHIFTUP}{RIGHT}{ESC}")

    [/autoit]

    (um das erste Zeichen der aktuellen Zeile in OpenOffice Writer Unterstrichen zu formatieren) funktioniert noch einwandfrei, der Fehler tritt aber (nach zahlreichen Tests hintereinander) immer mal wieder auf.

    Kommt jetzt noch eine zweite Zeile danach hinzu:

    [autoit]

    Send("{CTRLDOWN}{SHIFTDOWN}{RIGHT}{RIGHT}{CTRLUP}{SHIFTUP}{CTRLDOWN}{SHIFTDOWN}k{CTRLUP}{SHIFTUP}{RIGHT}{ESC}")

    [/autoit]

    (um die nächsten beiden Wörter kursiv zu formatieren), ist wieder die ALT-Taste wie auch die STRG eingerastet.
    Außerdem tritt der Fehler auf, dass mal die beiden Wörter kursiv formatiert werden, mal ein Wort und ein Zeichen, mal nur ein Wort.

    Generell tritt der Fehler wohl auf, wenn ich zu viele Strg/Alt/Pfeiltasten-Drücke zu schnell hintereinander sende, wenn ich dagegen hinter jeden Befehl ein SLEEP(250) setze, geht es.

    Woran kann das liegen? ?(


    Warum funktioniert

    send("{CTRLUP}{ALTUP}")

    nicht, um die Tasten wieder freizugeben? :cursing:


    Danke, Frank

    Einmal editiert, zuletzt von elchimforum (9. März 2011 um 20:16)

  • Es liegt daran, dass das Programm diese Befehle nicht so schnell abarbeiten kann und dann welche ausgelassen werden. Mach jeden Befehl seperates send und immer dazwischen ein sleep(100).

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ohje,
    das macht längere Befehlsfolgen aber sehr langsam - insbesondere in Schleifen - kein anderer Weg? :(
    Bist du sicher?

    Wundern tut mich, dass meistens die Befehlsfolgen ja korrekt ausgeführt werden - nur eben dass dann am Ende das mit ALT und STRG ist.

    Was für mich eigentlich eher nach einem Bug aussieht in AutoIt, meinem Script oder im System.

    Und Warum funktioniert send("{CTRLUP}{ALTUP}") nicht ? ?( ?( ?(

    Danke für deine Mühe

    Frank