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

Inno Setup编译时SW_HIDE无法隐藏PowerShell窗口的问题及解决

问题修复方案

这个问题是可以修复的,原因在于SW_HIDE是传递给系统的窗口显示参数,但PowerShell启动时可能会先创建窗口再响应隐藏指令,或是NSIS的Exec指令调用控制台程序时的特性导致弹窗出现。以下是几种可行的解决方法:

  • 给PowerShell添加窗口隐藏参数:在PowerShell命令行中加入-WindowStyle Hidden,同时搭配-NoProfile可以减少启动加载时间,修改后的指令如下:

    #expr Exec( \
        "powershell", "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File UpdateDatabaseVersionInfo.ps1", \
        SourcePath, SW_HIDE)
    
  • 改用NSIS的ExecShell指令:ExecShell对控制台程序的窗口隐藏支持更稳定,调整后的指令格式:

    #expr ExecShell("open", "powershell", "-NoProfile -ExecutionPolicy Bypass -File UpdateDatabaseVersionInfo.ps1", SourcePath, SW_HIDE, "")
    
  • 通过-Command参数间接执行脚本:将脚本调用逻辑通过命令行传递,避免单独启动脚本窗口,示例:

    #expr Exec( \
        "powershell", "-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command ""& 'UpdateDatabaseVersionInfo.ps1'""", \
        SourcePath, SW_HIDE)
    

注意:如果脚本路径包含空格,需要用引号将脚本路径包裹,确保参数解析正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:36:01