Grins dann wart bis morgen oder Skyp @Pn :-) guck doch mal in die hilfe da steht die syntax richtig bin now zu over the top lol
While 1
Send
--------------------------------------------------------------------------------
Sendet einen oder mehrere simulierte Tastendrücke an das aktive Fenster.
Send ( "keys" [, flag] )
Parameter
keys Die Folge von Tastendrücken, die gesendet werden soll.
flag [optional] Kennzeichnet, wie der "keys"-Parameter verarbeitet wird:
flag = 0 (Standard), Text beinhaltet spezielle Zeichen, wie „+“ und „!“, die für SHIFT- (=UMSCHALT) und ALT-Tasten stehen.
flag = 1, "keys" wird so wie angegeben gesendet.
Rückgabewert
Keine.
Bemerkungen
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 ist die Kleinschreibung zu verwenden!
'+'
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"-Operation 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} Nur 2000/XP: Wählt den Browser-Button "Zurück"
{BROWSER_FORWARD} Nur 2000/XP: Wählt den Browser-Button "Vorwärts"
{BROWSER_REFRESH} Nur 2000/XP: Wählt den Browser-Button "Aktualisieren"
{BROWSER_STOP} Nur 2000/XP: Wählt den Browser-Button "Stop"
{BROWSER_SEARCH} Nur 2000/XP: Wählt den Browser-Button "Suche"
{BROWSER_FAVORITES} Nur 2000/XP: Wählt den Browser-Button "Favoriten"
{BROWSER_HOME} Nur 2000/XP: Startet den Browser und geht zur Startseite
{VOLUME_MUTE} Nur 2000/XP: Stellt Lautsprecher auf Stumm
{VOLUME_DOWN} Nur 2000/XP: Reduziert die Lautstärke
{VOLUME_UP} Nur 2000/XP: Vergrößert die Lautstärke
{MEDIA_NEXT} Nur 2000/XP: Wählt den nächsten Track im Media Player
{MEDIA_PREV} Nur 2000/XP: Wählt den vorhergehenden Track im Media Player
{MEDIA_STOP} Nur 2000/XP: Stoppt Media Player
{MEDIA_PLAY_PAUSE} Nur 2000/XP: Wiedergabe/Pause Media Player
{LAUNCH_MAIL} Nur 2000/XP: Startet die Standard-E-Mail-Anwendung
{LAUNCH_MEDIA} Nur 2000/XP: Startet den Media Player
{LAUNCH_APP1} Nur 2000/XP: Startet das Anwender-Programm 1
{LAUNCH_APP2} Nur 2000/XP: Startet das Anwender-Programm 2
Um z.B. den Wert A als ASCII-Code zu senden (man drückt ständig die ALT Taste und gibt am Nummernblock die Ziffern 065 ein):
Send("{ASC 065}")
Es können auch mehrere verschiedene ASCII-Zeichen, mit einem Send-Befehl, an ein Control gesendet werden, z.B.
Send("{ASC 067}{ASC 058}{ASC 092}") ; Sendet C:\ an das Control.
(wenn man einen zweistelligen ASCII-Code hat, muss eine 0 vorangestellt werden (z.B. 065), andernfalls wird die veraltete Codepage 437 verwendet.)
Um UNICODE Zeichen zu senden, gibt man den Code entweder dezimal oder in hex ein, als Beispiel ein chinesisches Zeichen:
Send("{ASC 2709}") oder Send("{ASC 0xA95}")
Einzelne Tastendrücke können mehrfach wiederholt werden, z.B.
Send("{DEL 4}") ;Drückt 4 mal die DEL (Entf-) Taste
Send("{S 30}") ;Sendet 30 mal ein S
Send("+{TAB 4}") ;Drückt 4 mal SHIFT+TAB
Die Taste wird mindestens ein Mal gesendet, auch wenn als Zahl Null angegeben wird.
Um eine Taste gedrückt zu lassen (brauchbar eigentlich nur für Spiele):
Send("{a down}") ;Hält die Taste A gedrückt
Send("{a up}") ;Lässt die Taste wieder los
Um den Status der Capslock, Numlock oder Scrolllock Taste zu setzen:
Send("{NumLock on}") ;Schaltet die NumLock Taste ein
Send("{CapsLock off}") ; Schaltet die CapsLock Taste aus
Send("{Scrolllock toggle}") ;Ändert den Zustand der Scrolllock Taste (wenn die Taste eingeschaltet ist, wird sie ausgeschaltet bzw. umgekehrt)
Will man einen Zähler als Variable vordefinieren, dann benutzt man das so:
$n = 4
Send("+{TAB " & $n & "}")
Will man z.B. den ASCII-Code "A" vier Mal senden, dann probiere das hier:
$x = Chr(65)
Send("{" & $x & " 4}")
Die LAPTOP-Taste "Fn" kann leider nicht simuliert werden.
Bemerkung: Wenn das Flag auf 1 gesetzt ist, dann sind die o.g. speziellen Prozeduren ausgeschaltet.
Dies ist sinnvoll, wenn man einen Text, der aus einer Variablen stammt, senden will und dieser Text exakt gleich gesendet werden soll.
Beispiel: Öffne die Ordneroptionen (in der Systemsteuerung) und versuche folgendes:
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 Hacken (Kreuz, etc.) in der Checkbox (wenn es eine “echte” Checkbox ist!!)
Send("{-}") Lösche den Haken (Kreuz, etc.) in der Checkbox
Send("{NumPadMult}") Klappt alle Ebenen einer Ordnerstruktur im Explorer (vom Typ SysTreeView32)auf.
Man benutzt die ALT-Taste auch, um Menüs/ Untermenüs zu steuern, zum Beispiel bei einem geöffneten NotePad:
Send("!d") Sendet Alt+d, (öffnet im Notepad das Datei Menü). Probiere andere Buchstaben!
Send("{DOWN}") Fahre runter im Menü.
Send("{UP}") Fahre rauf im Menü.
Send("{LEFT}") Fahre nach links in ein neues Menü oder öffne ein Untermenü.
Send("{RIGHT}") Fahre nach rechts in ein neues Menü oder schließe ein Untermenü.
Eine komplette Liste der Tastaturkürzel findet man in der Windows-Hilfe (Win+F1), falls man nicht weiß, wie wichtig ALT+F4, STRG+C oder STRG+V etc... sind.
Wenn man ein Skript auf einem Remotecomputer durch ein Programm wie psexec (

) oder beyondexec (

) ausführen lässt, ist es notwendig (insbesondere dann, wenn Tastendrücke an ein Programm gesendet werden sollen, das per Skript mittels RUN-Funktion gestartet wird), ControlSend oder ControlXXX-Funktionen zu benutzen, um eine direkte Kommunikation mit der Steuerung herzustellen. Der SEND-Befehl, auch mit der Option Opt("SendAttachMode",1), funktioniert hier nicht.
Um bessere Rechte auf dem Remote-Computer beim Senden zu haben, benutzt man den Modus -s.
Opt("SendKeyDelay",...) ändert die Länge der kurzen Pause zwischen gesendeten Tastenanschlägen.
Opt("SendKeyDownDelay",...) ändert die Zeitspanne, die eine Taste niedergehalten wird, bevor diese wieder freigegeben wird.
Wird "SendKeyDelay" und "SendKeyDownDelay" auf 0 gesetzt, so werden alle Verzögerungen beim senden von Tasten entfernt. Dies kann unter bestimmten Umständen notwendig sein, zum Beispiel wenn man mit ("#l") das System sperrt, um zu vermeiden, dass die WIN-Taste untengehalten wird.
Verwandte Funktionen
SendAttachMode (Option), SendKeepActive, SendKeyDelay (Option), SendKeyDownDelay (Option), ControlSend, BlockInput, HotKeySet, WinMenuSelectItem
Beispiel
Send("#r")
WinWaitActive("Ausführen")
Send("notepad.exe{Enter}")
WinWaitActive("[CLASS:Notepad]")
Send("Die heutige Zeit/Datum ist {F5}")
WEnd