欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

如何使用ISSkin对Unicode版的Inno Setup制作的安装程序添加皮肤?

程序员文章站 2022-07-05 12:58:59
如何使用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制作的安装程序添加皮肤?

文章结束,以上就是关于如何使用isskin对unicode版的inno setup制作的安装程序添加皮肤的方法步骤,小编就给大家介绍到这里了,如果你觉得这篇文章还不错,而且对你有帮助,那就赶快分享给更多的人看到吧!更多精彩,尽在网站!