はじめに
PowerShellでは任意のウィンドウに対してキー操作を送ることができます。ということはRPAもどきができるのでは?と思ったのでやってみることにしました。
簡単な例として、メモ帳を開いて「ITStudy」という文字とURLを入力します。そしてスクリプトと同じ場所にテキストファイルを保存してメモ帳を閉じます。
ソースコード
######################################################################
# 概要:メモ帳を起動して文字を打ち込む
# 作成者:ITStudy
# 作成日:2020/07/11
######################################################################
$CurrentDir = $PSScriptRoot
$txtFile = "test.txt"
[System.Windows.Forms.SendKeys]::SendWait("^{ESC}")
Start-Sleep -s 1
[System.Windows.Forms.SendKeys]::SendWait("notepad")
Start-Sleep -s 1
[System.Windows.Forms.SendKeys]::SendWait("{Enter}")
Start-Sleep -s 1
[System.Windows.Forms.SendKeys]::SendWait("ITStudy{Enter}")
Start-Sleep -s 1
[System.Windows.Forms.SendKeys]::SendWait("https://it-study.info/{Enter}")
Start-Sleep -s 1
[System.Windows.Forms.SendKeys]::SendWait("^(s)")
Start-Sleep -s 1
[System.Windows.Forms.SendKeys]::SendWait((Join-Path $CurrentDir $txtFile))
Start-Sleep -s 1
[System.Windows.Forms.SendKeys]::SendWait("%(s)")
Start-Sleep -s 1
[System.Windows.Forms.SendKeys]::SendWait("%{F4}")
参考サイト
Microsoftのサイト(SendKeysメソッド)をご参照下さい。
現時点では「Windows」キーが送れません。これができればもっと活躍の幅が広がるので今後のバージョンアップに期待ですね。
コメント