Sendet einen oder mehrere simulierte Tastendrücke an das aktive Fenster.
Send ( "keys" [, flag = 0] )
keys | Die Folge von Tastendrücken, die gesendet werden soll. |
flag | [optional] Kennzeichnet, wie der "keys"-Parameter verarbeitet wird: $SEND_DEFAULT (0) = Text beinhaltet spezielle Zeichen, wie „+“ und „!“, die für SHIFT- (=UMSCHALT) und ALT-Tasten stehen (Standard). $SEND_RAW (1) = Tasten ("keys") werden so wie angegeben gesendet. Die Konstanten sind in "AutoItConstants.au3" definiert. |
Siehe Anhang für einige Tipps zur Verwendung von Send(). AutoIt kann alle ASCII und erweiterte ASCII Zeichen (0-255) senden. Um UNICODE Zeichen zu senden, muss die "ASC" Option mit dem Code des Zeichens, das gesendet werden soll, benutzt werden (siehe {ASC} am Ende der untenstehenden Tabelle).
Die Send() Befehlssyntax ist ähnlich dem von ScriptIt und Visual Basic verwendetem "SendKeys"-Befehl. Die Zeichen werden wie geschrieben gesendet, mit Ausnahme der folgenden Zeichen:
'!'
Dies weist AutoIt an, den ALT Tastendruck zu senden, folglich würde Send("Das ist ein Text!a") die Tastendrücke "Das ist ein Text" senden und dann die Tastendrücke "ALT+a".
Nebenbei sind einige Programme sehr empfindlich bezüglich Großbuchstaben und ALT-Taste, z.B. "!A" ist unterschiedlich zu "!a". Der erste Ausdruck bewirkt ALT+SHIFT+A, der zweite ist ALT+a. Im Zweifelsfall benutzt man die Kleinschreibung!
'+'
Dies weist AutoIt an, den SHIFT-(=UMSCHALT)-Tastendruck zu senden, folglich würde Send("Hell+o") den Text "HellO" senden. Send("!+a") würde "ALT+SHIFT+a" senden.
'^'
Dies weist AutoIT an, den CTRL (=STRG)-Tastendruck zu senden, folglich würde Send("^!a") "STRG+ALT+a" senden.
Bemerkung: Einige Programme reagieren sehr empfindlich auf Groß-/Kleinschreibung (Case sensitive) und STRG-Tastendrücke, z.B. ist "^A" unterschiedlich zu "^a". Der erste Ausdruck sendet STRG+SHIFT+A, der zweite sendet STRG+a. Im Zweifelsfall benutzt man die Kleinschreibung!
'#'
Die Hash (Raute oder Doppelkreuz)-Taste simuliert das Drücken der Windows-Taste. Folglich würde Send("#r") Win+r senden und damit die Run Dialogbox (Ausführen-Dialog) aufrufen.
Man kann "SendCapslockMode" so einstellen, dass die CAPSLOCK-Taste (FESTSTELLTASTE) beim Start einer Send() Funktion abgeschaltet wird und nach Beenden wieder zurückgesetzt wird.
Wenn aber ein Anwender die SHIFT-Taste beim Beginn einer Send() Funktion gedrückt hält, könnte der Text in Großbuchstaben gesendet werden.
Eine Vermeidungsmöglichkeit ist Send("{SHIFTDOWN}{SHIFTUP}") vor dem eigentlichen Send() Befehl zu senden.
Bestimmte Tastaturen, wie z.B. die tschechische, senden unterschiedliche Zeichen, je nachdem, ob die SHIFT- oder FESTSTELL-Taste betätigt ist. Nach der AutoIt-Arbeitsweise werden die Zeichen der FESTSTELL-Taste als SHIFT-Zeichen gesendet und deshalb kann dieses Verhalten nicht simuliert werden.
Bestimmte spezielle Tastendrücke müssen in geschweiften Klammern gesendet werden:
Wichtig : Windows verbietet das Senden der Tastenkombination "STRG-ALT-DEL"!
Send() Befehl (wenn Flag = 0) | Resultierender Tastendruck |
---|---|
{!} | ! |
{#} | # |
{+} | + |
{^} | ^ |
{{} | { |
{}} | } |
{SPACE} | SPACE (Leertaste) |
{ENTER} | Eingabetaste auf der Haupttastatur |
{ALT} | ALT |
{BACKSPACE} oder {BS} | BACKSPACE (Rücktaste) |
{DELETE} oder {DEL} | DELETE Entfernen (Entf) |
{UP} | Nach-Oben-Taste |
{DOWN} | Nach-Unten-Taste |
{LEFT} | Nach-Links-Taste |
{RIGHT} | Nach-Rechts-Taste |
{HOME} | HOME (Pos1 – Taste) |
{END} | END (Ende - Taste) |
{ESCAPE} oder {ESC} | ESCAPE- Taste |
{INSERT} oder {INS} | INS (EINFÜGEN (Einfg)-Taste) |
{PGUP} | PageUp (Bild-Auf-Taste) |
{PGDN} | PageDown (Bild-Ab-Taste) |
{F1} - {F12} | Funktionstasten |
{TAB} | TAB (Tabulator – Taste) |
{PRINTSCREEN} | Druck-Taste |
{LWIN} | linke Windows Taste |
{RWIN} | rechte Windows Taste |
{NUMLOCK on} | NUMLOCK (Num)-Taste (on/off/toggle) |
{CAPSLOCK off} | CAPSLOCK-Taste (FESTSTELLTASTE) (on/off/toggle) |
{SCROLLLOCK toggle} | ROLLEN-Taste (on/off/toggle) |
{BREAK} | STRG+Break = STRG+UNTERBRECHUNG Taste |
{PAUSE} | PAUSE-Taste |
{NUMPAD0} - {NUMPAD9} | Ziffernblock 0-9 (Numpad = numerisches Tastenfeld) |
{NUMPADMULT} | Multiplizieren auf Numpad |
{NUMPADADD} | Addieren auf Numpad |
{NUMPADSUB} | Subtrahieren auf Numpad |
{NUMPADDIV} | Dividieren auf Numpad |
{NUMPADDOT} | Punkt (Komma) auf Numpad |
{NUMPADENTER} | Eingabe-Taste auf Numpad |
{APPSKEY} | Windows-Programm Taste |
{LALT} | Linke ALT-Taste |
{RALT} | Rechte ALT-Taste |
{LCTRL} | Linke STRG-Taste |
{RCTRL} | Rechte STRG-Taste |
{LSHIFT} | Linke Shift-Taste |
{RSHIFT} | Rechte Shift-Taste |
{SLEEP} | Computer PAUSE Taste |
{ALTDOWN} | Hält die ALT-Taste gedrückt, bis {ALTUP} gesendet wird |
{SHIFTDOWN} | Hält die SHIFT-Taste gedrückt, bis {SHIFTUP} gesendet wird |
{CTRLDOWN} | Hält die STRG-Taste gedrückt, bis {CTRLUP} gesendet wird |
{LWINDOWN} | Hält die linke Windows-Taste gedrückt, bis {LWINUP} gesendet wird |
{RWINDOWN} | Hält die rechte Windows-Taste gedrückt, bis {RWINUP} gesendet wird |
{ASC nnnn} | Sendet die ALT+nnnn ASCII-CODE-Tastenkombination |
{BROWSER_BACK} | Wählt den Browser-Button "Zurück" |
{BROWSER_FORWARD} | Wählt den Browser-Button "Vorwärts" |
{BROWSER_REFRESH} | Wählt den Browser-Button "Aktualisieren" |
{BROWSER_STOP} | Wählt den Browser-Button "Stop" |
{BROWSER_SEARCH} | Wählt den Browser-Button "Suche" |
{BROWSER_FAVORITES} | Wählt den Browser-Button "Favoriten" |
{BROWSER_HOME} | Startet den Browser und geht zur Startseite |
{VOLUME_MUTE} | Stellt Lautsprecher auf Stumm |
{VOLUME_DOWN} | Reduziert die Lautstärke |
{VOLUME_UP} | Vergrößert die Lautstärke |
{MEDIA_NEXT} | Wählt den nächsten Track im Media Player |
{MEDIA_PREV} | Wählt den vorhergehenden Track im Media Player |
{MEDIA_STOP} | Stoppt Media Player |
{MEDIA_PLAY_PAUSE} | Wiedergabe/Pause Media Player |
{LAUNCH_MAIL} | Startet die Standard-E-Mail-Anwendung |
{LAUNCH_MEDIA} | Startet den Media Player |
{LAUNCH_APP1} | Startet das Anwender-Programm 1 |
{LAUNCH_APP2} | Startet das Anwender-Programm 2 |
{OEM_102} | Entweder die "angle bracket" Taste oder die Backslash-Taste auf der RT 102-Tasten-Tastatur |
Send("{TAB}") | Springt zum nächsten Button oder nächster Checkbox, etc. |
---|---|
Send("+{TAB}") | Springt zum vorhergehenden Button oder Checkbox, etc. |
Send("^{TAB}") | Springt zum nächsten WindowTab (bei einem Fenster mit mehreren TABs, z.B. Firefox) |
Send("^+{TAB}") | Springt zum vorhergehenden WindowTab. |
Send("{SPACE}") | Kann verwendet werden, um den Zustand einer Checkbox zu wechseln oder einen Button anzuklicken. |
Send("{+}") | Setzt einen Haken (Kreuz, etc.) in der Checkbox (wenn es eine “echte” Checkbox ist!!) |
Send("{-}") | Löscht den Haken (Kreuz, etc.) in der Checkbox |
Send("{NumPadMult}") | Klappt alle Ebenen einer Ordnerstruktur im Explorer (vom Typ SysTreeView32) auf. |
Send("{DOWN}") | Fährt runter im Menü. |
---|---|
Send("{UP}") | Fährt rauf im Menü. |
Send("{LEFT}") | Fährt nach links in ein neues Menü oder öffnet ein Untermenü. |
Send("{RIGHT}") | Fährt nach rechts in ein neues Menü oder schließt ein Untermenü. |
BlockInput, ControlSend, HotKeySet, SendAttachMode (Option), SendKeepActive, SendKeyDelay (Option), SendKeyDownDelay (Option), WinMenuSelectItem
Example()
Func Example()
; Simuliert die Tastenkombination Win + R um das Run-Fenster zu öffnen.
Send("#r")
; Wartet maximal 10 Sekunden bis das Run-Fenster erscheint.
WinWait("Run", "", 10)
; Simuliert die Eingabe 'notepad.exe' und drückt die 'ENTER' Taste.
Send("notepad.exe{Enter}")
; Wartet maximal 10 Sekunden bis das Editorfenster erscheint.
Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
; Simuliert die Eingabe des folgenden Strings und drückt die 'F5' Taste für Eingabe des Datums und der Uhrzeit in das Edit-Control des Editors.
Send("Today's time/date is {F5}")
; Schließt das Editorfenster durch die Verwendung des von WinWait zurückgegebenen Handles.
WinClose($hWnd)
; Nun erscheint eine Meldung mit der Frage, ob die Änderungen gespeichert werden sollen.
; Der Klassenname (classname) des Fenster lautet "#32770".
; Anschließend wird die "TAB"-Taste gedrückt um zum zweiten Button zu wechseln. Dieser wird automatisch durch drücken der "ENTER"-Taste betätigt, so dass die Datei nicht gespeichert wird.
WinWaitActive("[CLASS:#32770]")
Sleep(500)
Send("{TAB}{ENTER}")
EndFunc ;==>Example