You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell 绕过IE下载弹窗时代码仅触发Num Lock开启是什么原因?

PowerShell IE下载弹窗控制异常排查

核心问题原因

  • 窗口标题匹配错误:你使用的$wshell.appactivate("Save As")仅适配英文操作系统的IE环境,中文系统下另存为窗口标题为「另存为」,窗口激活失败后,SendKeys发送的指令会输入到当前激活的其他程序,进而误触发Num Lock开关等非预期操作。
  • 缺少窗口等待逻辑:IE弹出下载窗口存在明显的响应延迟,代码执行AppActivate时如果窗口还未完成加载,也会激活失败。
  • 指令发送无间隔:连续发送按键指令时,系统未完成前一个指令响应就收到新指令,容易出现按键丢失、错位的问题。

修正后示例代码

$wshell = New-Object -ComObject WScript.Shell
# 等待下载弹窗完全弹出,可根据实际设备性能调整时长
Start-Sleep -Seconds 3
# 英文系统替换双引号内内容为 "Save As"
$wshell.AppActivate("另存为")
Start-Sleep -Milliseconds 500
# 发送Alt+S快捷键触发保存
$wshell.SendKeys("%s")
Start-Sleep -Milliseconds 500
$wshell.SendKeys("{ENTER}")

补充说明

如果执行过程中仍然存在Num Lock状态异常的问题,可以在脚本末尾增加强制复位Num Lock状态的代码:

# 按需设置为$true(开启)或$false(关闭)
[System.Console]::NumberLock = $false

内容的提问来源于stack exchange,提问作者Francesco Mantovani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 12:06:00