制作兼容 xp 的 exe

3/2/2021 exeNwjs

# 制作兼容 xp 的 exe

由于医院部分设备限制,我们需要兼容 xp 系统。

那么我们有两个方案:

# 方案一:使用 chrome 浏览器

chrome 能兼容 xp 的版本在 50 以下,但是经过我虚拟机安装测试发现 46 能正常运行。

然后在属性中设置--kiosk 就能全屏显示

如果是 https 的网址,由于 xp 没有最新的证书,所以会提示不安全,可以加上

--ignore-certificate-errors

"C:\Documents and Settings\cf\Local Settings\Application Data\Chromium\Application\chrome.exe" --ignore-certificate-errors --kiosk https://my-network.com

# 方案二:使用 nwjs 打包

如果需要兼容到 xp,则只能使用 0.14.7 版本,官方下载地址在这里,不过淘宝镜像下载更快些。

注:nwjs-sdk-v0.14.7-win-ia32.zip 才能打开控制台调试

所以打包使用nwjs-v0.14.7-win-ia32 ,开发使用nwjs-sdk-v0.14.7-win-ia32.zip

如果只是配置网址,那么只需要解压后 package.json,修改 main 为网址,然后打包即可。

打包软件有用Enigma Virtual BoxFilePacker 的,FilePacker 我试了下不是很好用。我推荐 Inno setup, xp 兼容的最高版本为 5.5.9, 下载地址在这里。

然后在 xp 内打包即可,详细教程见 这里

这个打包有一个问题,就是如果打包目录里有文件夹,则需要修改打包配置文件,如下

否则会这个错误

# 1. Inno setup 配置中文

Inno setup 默认是使用的英文,官网上也有非正式的中文文件下载,地址在这里

把它复制到 txt 中,然后修改文件名为ChineseSimplified.isl

存到 Inno setup 目录的languages

然后完成设置脚本引导 👇 疯狂下一步就行

完成后就出现了 👇

在安装配置文件 iss 修改 languages ,就可以了

好了之后保存-->随便取个名字

注:这样配置后,在选择语言那一块还是会乱码,修改前面下载的中文文件ChineseSimplified.isl就好了

# 2. 配置开机自启

有两种方式,一种是不修改注册表,避免了杀毒软件提示,其实就是将快捷方式添加到“启动”文件夹。

\[Tasks\]Name: "startupicon"; Description: "开机启动"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1\[Icons\]Name: "{commonstartup}\\{#MyAppName}"; Filename: "{app}\\{#MyAppExeName}"; Tasks: startupicon
1

另一种是修改注册表

\[Registry\] Root: HKLM; Subkey: "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; ValueType: string; ValueName: "testrun"; ValueData: "{app}\\{#MyAppExeName}"
1

# 3.修改图标

修改安装文件的图标,只需要在 Inno setup 向导里导入就可以了

修改底部任务栏显示的图标,在package.json 中修改即可

但是这个不能修改到桌面图标,这个时候我们需要使用Resource Hacker 来修改,下载地址在这里

我们需要先将图片转为 ico 文件,这个可以使用在线制作 favicon 工具

然后使用Resource Hacker打开 nw.exe,

替换后保存即可

# xp 内的局限性

  1. xp 内语音播报只有英文,无法进行中文的播报

  2. es6 语法支持比较差,需要使用 webpack 打包后使用

** 另外需要在 xp 环境测试需要虚拟机,我后面会再出一个虚拟机相关的文章