powershell - 在 Powershell 中发送密钥 alt+n {TAB} {ENTER}
问题描述
我正在从安全站点自动下载 zip 文件。脚本已准备就绪,它使用 Internet Explorer 登录并转到所需位置,然后单击下载按钮,脚本按预期工作,直到这里。
单击下载按钮后,它会提示单击保存按钮。已尝试使用以下发送键
$wshell = New-Object -ComObject WScript.Shell
$id = (gps iex* | where {$_.MainWindowTitle -match "Title"}).id
$wshell.AppActivate($id)
start-sleep 1
$wshell.SendKeys("%{n}")
Start-Sleep 1
想要发送键(Alt+n + TAB + ENTER),尝试通过改变一些东西但最终得到相同的结果。
解决方案
要模拟要使用System.Windows.Forms.SendKeys
类的发送键。
加号 (+)、插入符号 (^)、百分号 (%)、波浪号 (~) 和括号 () 对于 SendKeys 具有特殊含义。要指定这些字符之一,请将其括在大括号 ({}) 中
在您的情况下,根据文档,代码示例应如下所示:
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.SendKeys]::SendWait("%n{TAB}{ENTER}")
在哪里:
%
代表ALT
按钮;n
代表n
按钮;{TAB}
代表TAB
按钮;{ENTER}
代表ENTER
按钮。
请按照文档页面查看可用选项的完整列表。