Inno Setup GIF 显示插件 GIFCtrl (V2.1 版本)
原文 http://restools.hanzify.org/article.asp?id=79

引用来自 test.iss; restools
; http://restools.hanzify.org
; gifctrl.dll 为一个用于Inno Setup的 13 KB 的 gif 显示插件,同样可以显示 BMP 和 JPEG。
; V2.1 可以同时显示 64 个 GIF 图片。解决插件加载后卸载时的延迟问题.
[Setup]
AppName=gifctrl
AppVerName=gifctrl Ver 2.1
DefaultDirName={pf}\gifctrl
DefaultGroupName=gifctrl
OutputDir=userdocs:Inno Setup Examples Output
SolidCompression=yes
[Files]
Source: "gifctrl.dll"; Flags: dontcopy solidbreak
Source: nsisinstall.gif; Flags: dontcopy solidbreak
Source: 0023.gif; Flags: dontcopy solidbreak
Source: "MyProg.exe"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
[Icons]
Name: "{group}\gifctrl"; Filename: "{app}\MyProg.exe"
[code]
const
HALIGN_CENTER = 0; //水平居中
HALIGN_LEFT = 1; //水平靠左
HALIGN_RIGHT = 2; //水平靠右
VALIGN_CENTER = 0; //垂直居中
VALIGN_TOP = 1; //垂直靠上
VALIGN_BOTTOM = 2; //垂直靠下
FIT_NONE = 0; //不适应窗口
FIT_WIDTH = 1; //适应窗口宽度
FIT_HEIGHT = 2; //适应窗口高度
FIT_BOTH = 3; //适应窗口宽度和高度
CLR_INVALID = $FFFFFFFF; //自动取容器左上角的颜色作为底色,如果取色失败,用按钮颜色代替。
// 创建 Gif 窗口
function NewGifbWnd(hWndParent: HWND; X, Y, nWidth, nHeight: Integer): HWND; external'newgifwnd@files:gifctrl.dll stdcall';
// 释放 Gif 窗口
function FreeGifWnd(hWndGif: HWND): Boolean; external 'freegifwnd@files:gifctrl.dll stdcall';
// 释放所有 Gif 窗口
function FreeAllGifWnd(): Boolean; external 'freeallgifwnd@files:gifctrl.dll stdcall';
// 设置 Gif 窗口的父窗口
function GifWndSetParent(hWndGif: HWND; hWndParent: HWND): Boolean; external'gifwndsetparent@files:gifctrl.dll stdcall';
// 设置 Gif 窗口的位置大小
function GifWndSetBounds(hWndGif: HWND; X, Y, nWidth, nHeight: Integer): Boolean; external'gifwndsetbounds@files:gifctrl.dll stdcall';
// 载入图片,并设置图片显示位置
function GifWndLoadFromFile(hWndGif: HWND; HAlign, VAlign: Integer; BGColor: DWord; Fit: integer; GifFileName: PChar): Boolean; external 'gifwndloadfromfile@files:gifctrl.dll stdcall';
// 第1 次载入需要指定图片文件“GifFileName”,然后在需要重新载入另外图片的时候重新指定另外的图片文件,重新调整 Align 位置时也需要调用此函数,
// 但是如果只是为了调整 Align 而不想重新载入一次 GifFileName 文件,只需要把 GifFileName 设置为空字符串就可以达到只调整位置,不重载文件。
var
GifPanel: TPanel;
GIFHWND1, GIFHWND2: HWND;
function InitializeSetup(): Boolean;
begin
GIFHWND1 := 0;
GIFHWND2 := 0;
Result := True;
end;
procedure DeinitializeSetup();
begin
FreeAllGifWnd();
end;
procedure LblOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://restools.hanzify.org', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure InitializeWizard();
var
GifFileName: String;
Lbl: TNewStaticText;
begin
ExtractTemporaryFile('nsisinstall.gif');
ExtractTemporaryFile('0023.gif');
GIFHWND1 := NewGifbWnd(WizardForm.InstallingPage.Handle, 0, WizardForm.PROGRESSGAUGE.Top + WizardForm.PROGRESSGAUGE.Height + SCaleY(5),
WizardForm.InstallingPage.Width, WizardForm.InstallingPage.Height - (WizardForm.PROGRESSGAUGE.Top
+ WizardForm.PROGRESSGAUGE.Height + SCaleY(5)));
GifWndLoadFromFile(GIFHWND1, HALIGN_CENTER, VALIGN_BOTTOM, CLR_INVALID, FIT_WIDTH, ExpandConstant('{tmp}\nsisinstall.gif'));
// 创建一个网站 Logo 连接
GIFHWND2 := NewGifbWnd(WizardForm.Handle, ScaleX(30), WizardForm.Bevel.Top + ScaleY(8), 88, 31);
GifWndLoadFromFile(GIFHWND2, HALIGN_CENTER, VALIGN_CENTER, CLR_INVALID, FIT_NONE, ExpandConstant('{tmp}\0023.gif'));
Lbl := TNewStaticText.Create(WizardForm);
Lbl.Parent := WizardForm;
Lbl.AutoSize := False;
Lbl.SetBounds(ScaleX(30), WizardForm.Bevel.Top + ScaleY(8), 88, 31);
Lbl.OnClick := @LblOnClick;
Lbl.Cursor := crHand;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInstalling then
begin
MsgBox('暂停一下,看看效果。', mbInformation, MB_OK);
end;
end;
点击下面连接下载例子。
http://restools.hanzify.org/inno/gifctrl/inno_gifctrl_v2.1.zip
Inno Setup GIF 显示插件 GIFCtrl (V2.1 版本)的更多相关文章
- Inno Setup 网页显示插件 webctrl (V2.1 版本)
原文 http://restools.hanzify.org/article.asp?id=90 Inno Setup网页显示插件 webctrl能够显示所有 IE 中能够显示的东西. 引用内容 ; ...
- Inno Setup 精灵显示插件 InnoFairy (V2.0 版本)
原文 http://restools.hanzify.org/article.asp?id=111 一个如影随形的小精灵会令到你的安装程序更加人性化. 就是这样一个功能的Inno Setup插件, 希 ...
- Inno Setup 网页显示插件 webctrl
原文:Inno Setup 网页显示插件 webctrl ; -- Example.iss -- ; restools ; http://restools.hanzify.org ; 插件名:webc ...
- Inno Setup 系统托盘图标插件 TrayIconCtrl V1.5
原文 http://restools.hanzify.org/article.asp?id=93 V1.5 修正在某些 Windows 平台上(例如 Windows XP SP3)不能正常运行的问题. ...
- Inno Setup 检测已安装的.NET Framework 版本
翻译自:http://kynosarges.org/DotNetVersion.html 由 Jordan Russell 写的 Inno Setup 是一个伟大的安装脚本程序,但缺乏一个内置的函数来 ...
- Inno setup定制安装界面
Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我 ...
- 在Unicode版Inno Setup中使用ISSkin
ISSkin是Code jock 公司出品的Inno Setup 皮肤插件,用于为Inno制作的安装程序提供皮肤功能. 自Delphi发布2009之后,Inno Setup 开始出现支持Unicode ...
- [!!!!!]Inno Setup教程-常见问题解答
[转]Inno Setup教程-常见问题解答 功能 * 翻译 Inno Setup 文字 * 它支持 MBCS (多字节字符集) 吗? * 将来会支持 Windows Installer 吗? ...
- Inno Setup脚本语法大全
Inno Setup脚本语法大全 ResourceShare Bruce 11个月前 (10-28) 6136浏览 0评论 Inno Setup 是什么?Inno Setup 是一个免费的 Win ...
随机推荐
- hdu 3926 Hand in Hand
http://acm.hdu.edu.cn/showproblem.php?pid=3926 这道题是判断两个图是不是同构相似.只要判断图中环的个数和链的个数,和每个环的节点数和链的节点数是否相等. ...
- SD card技术了解并WINCE下SDHC驱动开发(updated)
Suumary: 简单介绍了一下SD卡的历史和发展,同时结合MX31 ADS上的WINCE 下SDHC驱动更深入的了解该硬件的一些行为特点. 了解SD card SD是Secure Digital C ...
- 【Xamarin挖墙脚系列:开始使用Xamari4.0系列产品开发IOS】
一直沉默在Xamarin3.0系列版本上,升级到4.0之后,感觉有些变化.还得适应下. 1 build.host 代理消失了,成了SSH客户端登录.所以,Mac设备需要打开运行远程登录. 2 在Wi ...
- C#中List<T>用法
所属命名空间:System.Collections.Generic public classList<T> :IList<T>,ICollection<T>,IEn ...
- bzoj1684 [Usaco2005 Oct]Close Encounter
Description Lacking even a fifth grade education, the cows are having trouble with a fraction proble ...
- CreateThread简单那多线程编程
CreateThread简单那多线程编程 作者:vpoet mail:vpoet_sir@163.com 在进行多任务处理的时候我们往往会用到多线程技术,多线程理论上是多个线程同事处理不同的工作,但是 ...
- cenos 7 安装php7
1. CentOS/RHEL 7.x: rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm ...
- Spring的AOP1
引用:http://my.oschina.net/huangyong/blog/161338 是一个周末,刚给宝宝喂完牛奶,终于让她睡着了.所以现在我才能腾出手来,坐在电脑面前给大家写这篇文章. 今天 ...
- [Android 4.4.3] 泛泰A860 Omni4.4.3 20140610 RC2.0 三版通刷 by syhost
欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...
- LR实战之Discuz开源论坛——网页细分图结果分析(Web Page Diagnostics)
续LR实战之Discuz开源论坛项目,之前一直是创建虚拟用户脚本(Virtual User Generator)和场景(Controller),现在,终于到了LoadRunner性能测试结果分析(An ...