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

如何使用PowerShell脚本模拟按下键盘ESC按键?

PowerShell模拟按下ESC键的实现方案

以下两种方案都可以实现和手动按ESC键完全一致的效果,可根据使用场景选择:

方案1:使用.NET内置SendKeys类(推荐普通场景使用)

调用System.Windows.Forms内置的按键模拟能力,代码简洁易维护:

# 加载依赖程序集
Add-Type -AssemblyName System.Windows.Forms
# 发送ESC按键指令,SendWait会等待按键操作处理完成后再返回
[System.Windows.Forms.SendKeys]::SendWait("{ESC}")

注意:该方法默认将按键发送到当前系统活跃窗口,如需指定目标窗口,可先激活对应窗口后再执行上述代码。

方案2:调用Windows底层API(兼容全场景)

直接调用user32.dll的系统级按键接口,模拟效果和物理按键完全一致,无窗口焦点、运行环境限制:

# 定义ESC键对应虚拟键码、按键动作标识
$VK_ESC = 0x1B
$KEYEVENTF_KEYDOWN = 0x0
$KEYEVENTF_KEYUP = 0x2

# 导入系统API
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class User32 {
    [DllImport("user32.dll")]
    public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
}
"@

# 执行完整的ESC按下+抬起动作
[User32]::keybd_event($VK_ESC, 0, $KEYEVENTF_KEYDOWN, [UIntPtr]::Zero)
[User32]::keybd_event($VK_ESC, 0, $KEYEVENTF_KEYUP, [UIntPtr]::Zero)

两种方案的适用场景对比:

  • 方案1:适合常规桌面交互场景,代码量小,调试方便
  • 方案2:适合无UI、服务端、权限受限等特殊场景,兼容性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:30:02