1. C:\ITnator
  2. PowerShell

SendKeys in PowerShell Script verwenden

Autor
Johannes Huber
Veröffentlicht
Lesezeit
1 Minuten
Comic: Admin vor einem Monitor mit PowerShell, zum Artikel: SendKeys in PowerShell Script verwenden

PowerShell ist inzwischen sehr mächtig geworden und wird wohl die Konsole der Zukunft - zumindest unter Windows. Die Funktion SendKeys kann also auch in einem PowerShell Script verwendet werden.

Was ist SendKeys?

Mit dem Befehl Sendkeys kann man Tastenanschläge in einem Script ausführen lassen. Wir haben dazu auch schon einen Beitrag veröffentlicht, wie das in einem VBScript (VBS) funktioniert. Analog zum VBS kann man die Tastatureingabe auch in einem PowerShell Skript simulieren.

Sendkeys in PowerShell verwenden

Den Befehl SendKeys kann man auch in einem PowerShell Script verwenden. Naja, ganz ohne VBS geht es doch nicht, denn im PS Skript wird ein neues WScript-Objekt erzeugt.

PowerShell
#Parameter definieren
param($minutes = 180)

#Wcript objekt erzeugen
$wshell = New-Object -com "Wscript.Shell"

#schleife bis 180 minuten erreicht sind
for ($i = 0; $i -lt $minutes; $i++) {

    #nach jedem SendKeys 60 Sekunden warten
    Start-Sleep -Seconds 60

    #Sendkeys ausfuehren
    $wshell.sendkeys(".")
}

Zuerst wird im Powershell Script ein neues Wscript.shell Objekt erzeugt. Mit Hilfe einer Schleife wird dann der Sendkeys Befehl 180 Minuten lang ausgeführt. Für eine Pause sorgt ein Start-Sleep.

Beispiel

Ein gutes Beispiel wäre das Schreiben eines Wortes in Notepad. Somit müsste das PowerShell Script zuerst Notepad öffnen und danach kann mit SendKeys das gewünschte Wort geschrieben werden.

Hierzu haben wir natürlich auch ein Beispiel vorbereitet:

PowerShell
#Wcript objekt erzeugen
$wshell = New-Object -com "Wscript.Shell"

# Windows Notepad oeffnen
Start-Process 'C:\windows\system32\notepad.exe'

# 5 Sekunden warten, bis notepad geoeffnet ist
Start-Sleep 5

# Das Wort "HALLO" schreiben
$wshell.sendkeys("H")
$wshell.sendkeys("A")
$wshell.sendkeys("L")
$wshell.sendkeys("L")
$wshell.sendkeys("O")

Johannes Huber

Administrator bei ITnator

Schreibt über Probleme aus der Administration von Servern, Clients und vielen weiteren IT-Komponenten.

2 Kommentare

Glare

Kann ich auch ENTER oder TAB senden?

Johannes

Klar, das ist kein Problem. :-) Die passenden Infos findest du in unserem Beitrag "Sendkeys mit VBS": https://www.itnator.net/sendkeys-verwenden-in-vb-script-vbs/ Gruß Johannes

Kommentar schreiben

Kommentare erscheinen nach unserer Prüfung. Gespeichert werden Name und Text, siehe Datenschutz.