找回密码
 注册
广告投放 虚位以待【阿里云】2核2G云新老同享 99元/年,续费同价做网站就用糖果主机-sugarhosts.comJtti.com-新加坡服务器,美国服务器,香港服务器
查看: 207|回复: 0

NSIS自定义界面下水纹效果+[nsis+dup2]

[复制链接]
发表于 2010 年 10 月 6 日 19:53:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

觉得NSIS很麻烦,看到很多人用,我也学习学习~看到很多人对NSIS的绿化补丁很有兴趣,我简单介绍下修改UI和自定义界面的水纹效果需要注意的事项吧!
1.所谓的修改UI即使用资源编辑器如ResHacker编辑NSIS\Contrib\UIs下的UI界面,举例拿default.exe为例,拷贝出来,修改为NoadUI.exe备用。我是根据寒星先生的去广告补丁界面模仿的,这样免去了很多自己修改UI的操作。脱壳后用RH将去广告补丁中的资源105,106,111,粘到NoadUI.exe备用,假设自己修改UI自己看着来吧,模仿那些绿化界面也可以参考如下过程,大多数去广告补丁和绿化补丁都是InstallOptions,少部分用nsDialogs或InstallOptionsex,我们这里只讲仿制界面,代码部分你可以百度到寒星先生和另一个组织的绿化脚本,基本内容大同小异,至于nsis+dup2的补丁方式的实现思想见我的空间,这里不多说了,看写那么多字吓一跳了已经。绘制界面的快捷键是CTRL+I。

                               
登录/注册后可看大图

所需代码如下:

  1. ChangeUI all NoadUI.exe
复制代码
2.下面就是NSIS自定义界面下的水纹效果部分,你可以在NSIS\Examples下找到WaterCtrl.nsi,其实大部分插件示例代码和帮助文档都可以在安装目录找到,我用的汉化增强版,感谢前面的大牛们的工作。其实需要修改注意的只有这么一处。

  1. Function Show   ;自定义的页面显示函数, 一般是用于定制当前页面的内容
      System::Call 'user32::LoadImage(i,t,i,i,i,i,) i (0,"top.bmp",0,0,0,0x2010) .s' ;将位图载入内存中
      Pop $R0  ;假设载入成功, 这里弹出的是内存中位图的句柄
      GetDlgItem $R1 $HWNDPARENT   1046
      System::Call '$PLUGINSDIR\WaterCtrl::enablewater(i,i,i,i,i,i) i ($R1,0,0,$R0,3,50)'  ;开始水纹特效
      System::Call '$PLUGINSDIR\WaterCtrl::setwaterparent(i $R1)'  ;设置图片的句柄为图片容器
      System::Call '$PLUGINSDIR\WaterCtrl::flattenwater()'
      System::Call '$PLUGINSDIR\WaterCtrl::waterblob(i,i,i,i) i (70,198,10,1000)'
    FunctionEnd
复制代码
注意这句GetDlgItem $R1 $HWNDPARENT   1046,这里的1046就是我上面让你记下的数字,很多朋友修改不成功恐怕就出在这里了吧,示例程序有中文解释,其实说的很清楚了,需要读取图片容器的句柄,示例里读的是INI,你修改下就OK了。
效果见下图:

                               
登录/注册后可看大图

后话:还是喜欢用delphi,nsis实现的内容都很容易用delphi写出,而且lzma在官网上有源码,很容易调用,这里的水纹效果也有代码示例。而且很多功能用delphi更容易实现。----NSIS新手的感受
文章来源:北京采摘在线[bj.cncaizhai.cn]原帖地址:http://bj.cncaizhai.cn/thread-878-1-1.html
Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2025 年 2 月 2 日 22:44 , Processed in 0.025936 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表