#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
Global $stp = 1, $Input1, $Input2, $Input3, $Input4, $Input5, $nn ;声明一下
Global $Input
$Form1 = GUICreate("模拟安装", 503, 361, -1, -1)
; 图片控件
$Pic1 = GUICtrlCreatePic("G:\模拟安装软件\01.bmp", 0, 0, 165, 315) ;图标控件
GUICtrlSetState($Pic1, $gui_hide) ;图标控件隐藏
$Pic2 = GUICtrlCreatePic("G:\模拟安装软件\02.bmp", 30, 65, 105, 220)
GUICtrlSetState($Pic1, $gui_hide) ;图标控件隐藏
; 注册部分专用控件
$Label3_1 = GUICtrlCreateLabel("请输入您的产品序列号", 170, 65, 250, 20) ;标签
GUICtrlSetState(-1, $gui_hide) ; 隐藏
$Input1 = GUICtrlCreateInput("", 160, 90, 75, 21)
GUICtrlSetLimit(-1, 6)
GUICtrlSetState(-1, $gui_hide) ; 隐藏
$Input2 = GUICtrlCreateInput("", 240, 90, 75, 21)
GUICtrlSetLimit(-1, 6)
GUICtrlSetState(-1, $gui_hide) ; 隐藏
$Input3 = GUICtrlCreateInput("", 320, 90, 75, 21)
GUICtrlSetLimit(-1, 6)
GUICtrlSetState(-1, $gui_hide) ; 隐藏
$Input4 = GUICtrlCreateInput("", 400, 90, 75, 21)
GUICtrlSetLimit(-1, 6)
GUICtrlSetState(-1, $gui_hide) ; 隐藏
$Input5 = GUICtrlCreateInput("123456789", 240, 120, 75, 21)
GUICtrlSetLimit(-1, 9)
GUICtrlSetState(-1, $gui_hide) ; 隐藏
$Label3_1 = GUICtrlCreateLabel("请输入您的产品序列号", 170, 65, 250, 20) ;标签
GUICtrlSetState(-1, $gui_hide) ; 隐藏
$Graphic01 = GUICtrlCreateGraphic(0, 0, 504, 315) ;图形控件
GUICtrlSetBkColor(-1, 0xffffff) ;图形控件背景色
GUICtrlSetState(-1, $gui_hide) ;图标控件隐藏
$Graphic02 = GUICtrlCreateGraphic(0, 0, 504, 54) ;图形控件
GUICtrlSetBkColor(-1, 0xffffff) ;图形控件背景色
GUICtrlSetState(-1, $gui_hide)
$Label1 = GUICtrlCreateLabel("1", 180, 16, 310, 30) ;标签
GUICtrlSetFont(-1, 14, 600, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Label2 = GUICtrlCreateLabel("2", 180, 45, 310, 20) ;标签-01
GUICtrlSetFont(-1, 10, 400, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Label3 = GUICtrlCreateLabel("3", 180, 70, 310, 20) ;标签
GUICtrlSetFont(-1, 10, 400, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Label4 = GUICtrlCreateLabel("4", 180, 95, 310, 20) ;标签
GUICtrlSetFont(-1, 10, 400, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Label5 = GUICtrlCreateLabel("5", 180, 120, 310, 20) ;标签
GUICtrlSetFont(-1, 10, 400, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Label6 = GUICtrlCreateLabel("6", 180, 145, 310, 20) ;标签
GUICtrlSetFont(-1, 10, 400, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Label2_1 = GUICtrlCreateLabel("请仔细阅读下列许可协议。" _
& "您在继续安装前必须同意这些条款。", 20, 65, 460, 20) ;标签
GUICtrlSetFont(-1, 10, 400, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Label2_2 = GUICtrlCreateLabel("", 30, 10, 200, 20) ;标签
GUICtrlSetFont(-1, 10, 600, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Label2_3 = GUICtrlCreateLabel("", 40, 30, 200, 20) ;标签
GUICtrlSetFont(-1, 10, 400, 0, "宋体_GB2312") ;标签字体
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ;标签透明
$Edit1 = GUICtrlCreateEdit("", 20, 90, 463, 170, BitOR($ES_AUTOVSCROLL, $ES_READONLY, $WS_VSCROLL), _
BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
GUICtrlSetBkColor(-1, 0xffffff) ;编辑控件背景色
GUICtrlSetData(-1, "软件许可协议" & @CRLF & @CRLF _
& " 重要须知:迅雷在此特别提醒用户认真阅读本《软件许可协议》--- 用户应认真" & @CRLF _
& "阅读本《软件许可协议》 (下称《协议》)中各条款, 包括免除或者限制迅雷责任" & @CRLF _
& "的免责条款及对用户的权利限制。请您审阅并接受或不接受本《协议》(未成年人" & @CRLF _
& "应在法定监护人陪同下审阅)。除非您接受本《协议》条款,否则您无权下载、安" & @CRLF _
& "装或使用本软件及其相关服务。您的安装使用行为将视为对本《协议》的接受,并" & @CRLF _
& "同意接受本《协议》各项条款的约束。" _
& @CRLF & @CRLF & ' 本《协议》是用户与迅雷公司(下称"迅雷")之间关于用户下载、安装、使用、复' & @CRLF _
& '制"迅雷客户端"软件, (以下简称"软件")所订立的协议。本《协议》描述迅雷与用' & @CRLF _
& '户之间关于"软件"许可使用及相关方面的权利义务。"用户"或"您"是指通过迅雷提' & @CRLF _
& '供的获取软件授权的途径获得软件授权许可和/或软件产品的个人或单一实体。' _
& @CRLF & @CRLF & '1 权利声明' _
& @CRLF & @CRLF & '本"软件"由迅雷公司开发。本"软件"的一切版权等知识产权,以及与"软')
ControlFocus("模拟安装", "", $Edit1)
$Radio1 = GUICtrlCreateRadio("我同意此协议(&A)", 20, 270, 113, 17)
GUICtrlSetState($Radio1, $gui_hide) ;调整指定控件的状态
GUICtrlSetState($Radio1, $gui_hide)
$Radio2 = GUICtrlCreateRadio("我不同意此协议(&D)", 20, 290, 120, 17)
GUICtrlSetState($Radio2, $gui_hide) ;调整指定控件的状态 ; 隐藏
GUICtrlSetState($Radio2, $GUI_CHECKED)
$Button0 = GUICtrlCreateButton("取消", 410, 330, 80, 21, 0)
$Button1 = GUICtrlCreateButton("< 上一步(&B)", 225, 330, 80, 21, 0)
$Button2 = GUICtrlCreateButton("下一步(&N) >", 316, 330, 80, 21, 0)
GUICtrlCreateLabel("", 0, 315, 505, 1, $SS_SUNKEN + $SS_ETCHEDHORZ);装饰标签
$Label0 = GUICtrlCreateLabel("", 0, 54, 505, 1, $SS_SUNKEN + $SS_ETCHEDHORZ);装饰标签
GUISetState(@SW_SHOW)
step1(1)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1 ; "< 上一步[&B]"
Call("step" & $stp, 0);调用用户自定义函数
$stp -= 1
Call("step" & $stp, 1)
Case $Button2 ; "下一步[&N] >"
If GUICtrlRead($Button2) = "完成[&F]" Then
Exit
EndIf
Call("step" & $stp, 0)
$stp += 1
Call("step" & $stp, 1)
Case $Button0
_Exit()
Case $Radio1
GUICtrlSetState($Button2, $gui_enable)
Case $Radio2
GUICtrlSetState($Button2, $GUI_DISABLE)
EndSwitch
WEnd
Func step1($x)
If $x = 1 Then
WinSetTitle("模拟安装", "", "模拟安装 - 欢迎使用");修改指定窗口的标题
GUICtrlSetState($Pic1, $gui_show) ;显示图像 1
GUICtrlSetState($Pic2, $gui_hide) ;隐藏图像 2
GUICtrlSetState($Graphic01, $gui_show) ;显示图形
; 隐藏控件
GUICtrlSetState($Button1, $gui_hide) ;隐藏按钮 1
GUICtrlSetState($Edit1, $gui_hide) ;隐藏编辑框
GUICtrlSetState($Label0, $gui_hide) ;隐藏装饰标签
GUICtrlSetState($Label2_1, $gui_hide) ; 隐藏标签 2-1
GUICtrlSetState($Label2_2, $gui_hide) ; 隐藏标签 2-2
GUICtrlSetState($Label2_3, $gui_hide) ; 隐藏标签 2-3
GUICtrlSetState($Label3_1, $gui_hide) ; 隐藏标签 3-1
;GUICtrlSetState(, $gui_hide)
GUICtrlSetState($Radio1, $gui_hide)
GUICtrlSetState($Radio2, $gui_hide)
; 显示并修改文本标签 1 - 6
GUICtrlSetState($Label1, $gui_show)
GUICtrlSetData($Label1, "欢迎使用 模拟安装 演示向导")
GUICtrlSetState($Label2, $gui_show)
GUICtrlSetData($Label2, "现在将开始工具软件的模拟安装")
GUICtrlSetState($Label3, $gui_show)
GUICtrlSetData($Label3, "这是专为初学安装脚本编写者设计的")
GUICtrlSetState($Label4, $gui_show)
GUICtrlSetData($Label4, "免除你为学习写脚本而反复安装、卸载的烦恼!")
GUICtrlSetState($Label5, $gui_show)
GUICtrlSetData($Label5, "整个可见过程与真实软件安装完全一样!")
GUICtrlSetState($Label6, $gui_show)
GUICtrlSetData($Label6, "但系统后台绝无任何实际操作!不需事后的卸载!")
Else
GUICtrlSetState($Button1, $gui_enable) ;调整指定控件的状态
GUICtrlSetState($Radio1, $gui_hide)
GUICtrlSetState($Radio2, $gui_hide)
EndIf
EndFunc ;==>step1
Func Step2($x)
If $x = 1 Then
GUICtrlSetState($Button2, $GUI_DISABLE)
WinSetTitle("模拟安装", "", "模拟安装 - 许可协议");修改指定窗口的标题
GUICtrlSetData($Label2_2, "许可协议")
GUICtrlSetData($Label2_3, "继续安装前请阅读下列重要信息。")
GUICtrlSetState($Graphic01, $gui_hide) ;隐藏图形01
GUICtrlSetState($Graphic02, $gui_show) ;显示图形02
GUICtrlSetState($Pic1, $gui_hide) ; 隐藏图像
GUICtrlSetState($Label2_2, $gui_show) ; 显示标签 2-2
GUICtrlSetState($Label2_3, $gui_show) ; 显示标签 2-3
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetState($Label0, $gui_show) ;显示装饰标签
GUICtrlSetState($Radio1, $gui_show) ;显示协议选择单选框
GUICtrlSetState($Radio2, $gui_show) ;显示协议选择单选框
; 隐藏文本标签 1 - 6
GUICtrlSetState($Label1, $gui_hide) ;隐藏标签 -1
GUICtrlSetState($Label2, $gui_hide) ;隐藏标签 -2
GUICtrlSetState($Label3, $gui_hide) ;隐藏标签 -3
GUICtrlSetState($Label4, $gui_hide) ;隐藏标签 -4
GUICtrlSetState($Label5, $gui_hide) ;隐藏标签 -5
GUICtrlSetState($Label6, $gui_hide) ;隐藏标签 -6
GUICtrlSetState($Label2_1, $gui_show);显示标签 2-1
GUICtrlSetState($Edit1, $gui_show) ;显示编辑框
Else
EndIf
EndFunc ;==>Step2
Func step3($x)
If $x = 1 Then
WinSetTitle("模拟安装", "", "模拟安装 - 用户注册");修改指定窗口的标题
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetState($Label2_1, $gui_hide) ;隐藏标签 2-1
GUICtrlSetState($Radio1, $gui_hide) ;调整指定控件的状态 ; 隐藏
GUICtrlSetState($Radio2, $gui_hide) ;调整指定控件的状态 ; 隐藏
GUICtrlSetState($Edit1, $gui_hide) ;调整指定控件的状态 ; 隐藏
; 显示注册控件
GUICtrlSetState($Input1, $gui_show)
GUICtrlSetState($Input2, $gui_show)
GUICtrlSetState($Input3, $gui_show)
GUICtrlSetState($Input4, $gui_show)
GUICtrlSetState($Pic2, $gui_show)
GUICtrlSetState($Label3_1, $gui_show)
; 修改文本标签
GUICtrlSetData($Label2_2, "验证产品序列号和用户ID")
GUICtrlSetData($Label2_3, "请输入您的产品序列号和用户ID")
Else ;否则, 下一画面的[ 上一步 ] 按钮点击处理
; 隐藏控件
GUICtrlSetState($Edit1, $gui_hide) ;调整指定控件的状态 ; 显示
GUICtrlSetState($Radio1, $gui_hide) ;调整指定控件的状态 ; 隐藏
GUICtrlSetState($Radio2, $gui_hide) ;调整指定控件的状态 ; 隐藏
GUICtrlSetState($Input1, $gui_hide)
GUICtrlSetState($Input2, $gui_hide)
GUICtrlSetState($Input3, $gui_hide)
GUICtrlSetState($Input4, $gui_hide)
GUICtrlSetState($Pic2, $gui_hide)
GUICtrlSetState($Label3_1, $gui_hide)
EndIf
GUICtrlSetState($Input1, $GUI_FOCUS)
AdlibRegister("_register", 10);注册 Adlib 函数
EndFunc ;==>step3
Func step4($x)
If $x = 1 Then
GUICtrlSetState($Input5, $gui_hide)
GUICtrlSetState($Button2, $GUI_DISABLE)
WinSetTitle("模拟安装", "", "模拟安装 - 选择附件");修改指定窗口的标题
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetData($Label2, "添加04") ; 修改指定控件的数据
Else
EndIf
EndFunc ;==>step4
Func step5($x)
If $x = 1 Then
WinSetTitle("模拟安装", "", "模拟安装 - 推荐工具");修改指定窗口的标题
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetData($Label2, "添加05") ; 修改指定控件的数据
Else
EndIf
EndFunc ;==>step5
Func step6($x)
If $x = 1 Then
WinSetTitle("模拟安装", "", "模拟安装 - 安装位置");修改指定窗口的标题
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetData($Label2, "添加06") ; 修改指定控件的数据
Else
EndIf
EndFunc ;==>step6
Func step7($x)
If $x = 1 Then
WinSetTitle("模拟安装", "", "准备安装");修改指定窗口的标题
GUICtrlSetData($Button2, "安装(&I)")
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetData($Label2, "添加07") ; 修改指定控件的数据
Else
EndIf
EndFunc ;==>step7
Func step8($x)
If $x = 1 Then
WinSetTitle("模拟安装", "", "新标题===08");修改指定窗口的标题
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetData($Label2, "添加08") ; 修改指定控件的数据
Else
EndIf
EndFunc ;==>step8
Func step9($x)
If $x = 1 Then
WinSetTitle("模拟安装", "", "新标题XXX09");修改指定窗口的标题
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetData($Label2, "添加09") ; 修改指定控件的数据
Else
EndIf
EndFunc ;==>step9
Func step10($x)
If $x = 1 Then
WinSetTitle("模拟安装", "", "新标题XXX09");修改指定窗口的标题
GUICtrlSetState($Button1, $gui_show) ; 显示[ 上一步 ]按钮
GUICtrlSetData($Label2, "添加09") ; 修改指定控件的数据
Else
EndIf
EndFunc ;==>step10
Func _register();监视 注册码输入:
$focus = ControlGetFocus($Form1)
$x = ControlCommand($Form1, '', $focus, 'GetCurrentCol', '')
If $x = 7 And $nn = $x Then Send('{tab}')
$nn = $x + 1
If StringLen(GUICtrlRead($Input4)) = 6 Then
Local $len01 = GUICtrlRead($Input1); 如果注册码输入完成,则读输入的注册码:
Local $len02 = GUICtrlRead($Input2)
Local $len03 = GUICtrlRead($Input3)
Local $len04 = GUICtrlRead($Input4)
If GUICtrlRead($Input1) = "aaa222" And GUICtrlRead($Input2) = "bbb333" _
And GUICtrlRead($Input3) = "ccc444" And GUICtrlRead($Input4) = "ddd555" Then; 判断注册码是否正确:
AdlibUnRegister("_register")
GUICtrlSetState($Input1, $GUI_DISABLE)
GUICtrlSetState($Input2, $GUI_DISABLE)
GUICtrlSetState($Input3, $GUI_DISABLE)
GUICtrlSetState($Input4, $GUI_DISABLE)
GUICtrlSetData($Label3_1, "您输入的产品序列号正确,请输入用户ID:")
GUICtrlSetState($Input5, $gui_show); 显示用户ID输入框
Else
GUICtrlSetData($Label3_1, "您输入的产品序列号不正确,请重新输入。")
GUICtrlSetData($Input1, '')
GUICtrlSetData($Input2, '')
GUICtrlSetData($Input3, '')
GUICtrlSetData($Input4, '')
GUICtrlSetState($Input1, $GUI_FOCUS)
EndIf
Else
EndIf
EndFunc ;==>_register
Func _Exit()
Dim $iMsgBoxAnswer
$iMsgBoxAnswer = MsgBox(262180, "退出安装程序", "安装程序未完成安装。如果您现在退出,您的程序将不能安装。" _
& @CRLF & "" & @CRLF & "您可以以后再运行安装程序完成安装。" _
& @CRLF & "" & @CRLF & "退出安装程序吗?")
Select
Case $iMsgBoxAnswer = 6 ;Yes
Exit
Case $iMsgBoxAnswer = 7 ;No
EndSelect
EndFunc ;==>_Exit