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

VBA调用SendKeys打开exe/lnk文件触发Windows安全警告如何解决?

问题根因

你遇到的安全提示是Windows系统的下载文件区域校验警告,不属于Office内置提示,所以Application.DisplayAlerts = False配置无法屏蔽该弹窗。你当前使用SendKeys传入文件路径的写法本身逻辑也存在问题,SendKeys是模拟键盘输入的接口,无法直接用于打开文件,同时原循环缺少下一个文件的抓取逻辑会进入死循环。

最优解决方案:替换为Shell调用打开文件

放弃不稳定的SendKeys写法,改用WScript.Shell的系统调用接口直接打开快捷方式/可执行文件,不会触发安全提示,同时运行稳定性更高。
修正后代码如下:

Sub Ligacao()
    Dim strOrigem As String
    Dim strExtensao As String
    Dim strFile As String
    Dim shellObj As Object
    
    ' 创建系统Shell对象
    Set shellObj = CreateObject("WScript.Shell")
    
    strOrigem = ThisWorkbook.Path & "\"
    strExtensao = ".lnk"
    
    strFile = Dir(strOrigem & "*" & strExtensao)
    
    Do While strFile <> ""
        If Mid(strFile, 1, 3) = "Hat" Then
            ' 直接调用系统接口打开文件
            shellObj.Run strOrigem & strFile
        End If
        ' 抓取下一个匹配文件,避免死循环
        strFile = Dir
    Loop
    
    Set shellObj = Nothing
End Sub

若必须保留SendKeys写法的处理方案

如果一定要使用SendKeys逻辑,需要先解除目标文件的区域锁定标记:

  • 单个文件处理:右键点击对应.lnk/.exe文件,选择「属性」,勾选窗口底部的「解除锁定」选项后点击确定即可。
  • 批量文件处理:以管理员身份打开Windows终端,执行命令Get-ChildItem "你的文件所在目录路径" -Recurse | Unblock-File,即可批量解除该目录下所有文件的锁定标记。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:39:01