我正在使用 Slappy 的 SkinnedButton-v1.2.zip (23 KB) - v1.2 为我的安装程序按钮设置皮肤。
它在任何地方都可以正常工作,除了在 Windows 7 64 位上,按钮没有显示图像,文本也没有像“返回,下一步,取消”,它只显示白色按钮。
没有出现皮肤按钮错误,但是按钮已启用并且可以单击。
知道这个问题的原因是什么吗?
使用此处的修补 SkinnedControls 插件解决了问题。
我在Debug模式下运行插件,我发现有问题
SetWindowLong() and GetWindowLong()
功能。
也许使用 SetWindowLongPtr 和 GetWindowLongPtr 可以解决这个问题。他们获取/返回一个 LONG_PTR 变量,该变量取决于编译器设置。它在 x86 上是 32 位长,在 x64 上是 64 位 _int64。
所以插件必须修复并重新构建以支持 x64 机器。但是因为这个插件真的过时了(目前我没有时间新版本),请尝试我的另一个工具/插件,称为图形安装程序:http : //www.graphical-installer.com/
我开发了这个解决方案来快速皮肤 NSIS 安装程序,我希望你会喜欢它(对不起自我宣传)。
有两个可能的错误:
1)安装程序的初始化函数称为.onInit(你是'.onint')
这意味着 $PLUGINSDIR 永远不会被初始化并且文件不会被提取。
2)您的函数myGuiInit没有被调用/初始化。
您应该为此函数定义符号 MUI_CUSTOMFUNCTION_GUIINIT,例如:
!define MUI_CUSTOMFUNCTION_GUIINIT "myGuiInit"
定义它的最佳位置是脚本开头的某个地方 - 靠近其他 MUI_ 东西。