如何使用ISSkin对Unicode版的Inno Setup制作的安装程序添加皮肤?
isskin是什么?isskin怎么使用?isskin是code jock 公司出品的inno setup 皮肤插件,用于为inno制作的安装程序提供皮肤功能。isskin为您提供了灵活地创建自定义的视觉样式,可以与创新安装程序一起使用,将丰富的专业外观添加到任何创新安装程序安装和最好的其免费。接下来小编就给大家详细说说在unicode版inno setup中使用isskin给安装程序添加皮肤的具体方法步骤,希望对大家有所帮助!
自delphi发布2009之后,inno setup 开始出现支持unicode编码的版本,即5.3.x系列,并且官方同时提供ansi和unicode版本。
如果了解delphi 2009的朋友,应该就很了解这一版本对unicode的支持,这里不多做介绍了。
unicode版的inno setup脚本中会将所有字符串存储为unicode字符串,使用双字节编码,包括ascii码,如果调用为早期ansi版开发的插件的话,涉及到字符串string,应该显式修改为ansistring,这样才能保证unicode字符串正确转换为ansi字符串。
这里要解决由此而导致的问题。
现在的isskin最新版本是2.0.0,字符串使用ansi编码,所以需要将官方主页上介绍的code代码段进行修改。
这里介绍使用isskin对unicode版的inno setup制作的安装程序添加皮肤。
第一步,在file段添加插件isskin的动态链接库isskin.dll和皮肤文件
例如:
[files]
source: isskin.dll; destdir: {app}; flags: dontcopy
source: office2007.cjstyles; destdir: {tmp}; flags: dontcopy
第二步,在code段声明api,注意这里将原string修改为ansistring
例如:
[code]
procedure loadskin(lpszpath: ansistring; lpszinifilename: ansistring);external 'loadskin@files:isskin.dll stdcall';
procedure unloadskin();external 'unloadskin@files:isskin.dll stdcall';
function showwindow(hwnd: integer; utype: integer): integer;
external 'showwindow@user32.dll stdcall';
第三步,重载initializesetup和deinitializesetup两个函数以调用isskin插件功能
例如:
procedure deinitializesetup();
begin
showwindow(strtoint(expandconstant('{wizardhwnd}')), 0);
unloadskin();
end;
好了,现在截个图吧,看看效果。
文章结束,以上就是关于如何使用isskin对unicode版的inno setup制作的安装程序添加皮肤的方法步骤,小编就给大家介绍到这里了,如果你觉得这篇文章还不错,而且对你有帮助,那就赶快分享给更多的人看到吧!更多精彩,尽在网站!