首页 > 解决方案 > 在 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),尝试通过改变一些东西但最终得到相同的结果。

标签: powershell

解决方案


要模拟要使用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按钮。

请按照文档页面查看可用选项的完整列表


推荐阅读