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.
#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:
#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")