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

如何解决Inno Setup退出安装页按钮显示系统语言而非安装语言问题

问题原因

该现象是Inno Setup默认逻辑导致的:触发取消安装时默认调用Windows原生的MessageBox API,该API的按钮文本会直接继承当前系统的区域语言设置,不会读取安装包内配置的多语言资源,所以会出现主文本匹配安装语言、按钮匹配系统语言的错位情况。

修复方案

你可以通过自定义取消按钮的点击逻辑,替换默认的系统弹窗,用Inno Setup自身的多语言资源渲染整个弹窗即可解决,操作如下:

  • 打开你的Inno Setup安装脚本(.iss后缀文件),找到[Code]段,若不存在则在脚本末尾新增该段
  • 粘贴以下代码到[Code]段内:
function CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean): Boolean;
var
  ClickRes: Integer;
begin
  Result := False;
  // 使用Inno自带多语言MsgBox,所有文本自动匹配用户选中的安装语言
  ClickRes := MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO or MB_DEFBUTTON2);
  if ClickRes = IDYES then
  begin
    Cancel := True;
    Confirm := False;
  end
  else
  begin
    Cancel := False;
    Confirm := False;
  end;
  Result := True;
end;
  • 重新编译安装包即可生效
效果说明

修改后点击取消按钮弹出的退出确认框,标题、主文本、确认/取消按钮的文本都会完全匹配用户启动安装时选择的语言,不再跟随系统语言显示。
Exit Setup页面按钮语言不匹配效果图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:54:02