NSIS脚本:在卸载页面收集信息

时间:2024-01-05 21:36:08

原文 NSIS脚本:在卸载页面收集信息

此功能用于在软件卸载时收集相关信息,以便进行后续改进。实现功能如图:

NSIS脚本:在卸载页面收集信息

以下为实现代码:

01 !include nsDialogs.nsh
02 !include LogicLib.nsh
03  
04 OutFile "Test.EXE"
05 Name "Test"
06 !include "MUI2.nsh"
07 BrandingText "轻狂志www.flighty.cn"
08  
09 Page custom ReportPageShow ReportPageLeave
10  
11 !insertmacro MUI_LANGUAGE "SimpChinese"
12  
13 Var Dialog
14 Var Label1
15 Var Label2
16 Var Checkbox1
17 Var Checkbox2
18 Var Checkbox3
19 Var Checkbox4
20 Var Checkbox5
21 Var Checkbox6
22 Var Text
23 Section
24 SectionEnd
25 Function ReportPageShow
26 nsDialogs::Create /NOUNLOAD 1018
27 Pop $Dialog
28  
29 ${NSD_Createlabel} 0u 0u -1u 20u "很遗憾您选择卸载傲游,请告诉我们您卸载的原因。这将帮助我们以后进行改进:"
30 Pop $Label1
31 SetCtlColors $Label1 0x0080FF transparent
32  
33 ${NSD_Createcheckbox} 0u 25u -1u 10u "它经常崩溃"
34 Pop $Checkbox1
35  
36 ${NSD_Createcheckbox} 0u 40u -1u 10u "它经常假死"
37 Pop $Checkbox2
38 ${NSD_Createcheckbox} 0u 55u -1u 10u "它显示一些网页不正确"
39 Pop $Checkbox3
40 ${NSD_Createcheckbox} 0u 70u -1u 10u "它缺少我需要的功能"
41 Pop $Checkbox4
42 ${NSD_Createcheckbox} 0u 85u -1u 10u "我喜欢上其它浏览器了,请在下边注明"
43 Pop $Checkbox5
44 ${NSD_Createcheckbox} 0u 100u -1u 10u "升级傲游[Maxthon]"
45 Pop $Checkbox6
46 ${NSD_Createlabel} 0u 115u -1u 10u "其它原因, 请在下边写入:"
47 Pop $Label2
48 ${NSD_Createtext} 0u 125u -1u -126u ""
49 Pop $Text
50 nsDialogs::Show
51  
52 FunctionEnd
53  
54 Function ReportPageLeave
55     ${NSD_GetText} $Text $R0
56     StrCpy $R1 ""
57     ${NSD_GetState} $Checkbox1 $R2
58     StrCpy $R1 "$R1$R2"
59     ${NSD_GetState} $Checkbox2 $R2
60     StrCpy $R1 "$R1$R2"
61     ${NSD_GetState} $Checkbox3 $R2
62     StrCpy $R1 "$R1$R2"
63     ${NSD_GetState} $Checkbox4 $R2
64     StrCpy $R1 "$R1$R2"
65     ${NSD_GetState} $Checkbox5 $R2
66     StrCpy $R1 "$R1$R2"
67     ${NSD_GetState} $Checkbox6 $R2
68     StrCpy $R1 "$R1$R2"
69     MessageBox MB_OK '结果:勾选题:$R1;文本题:"$R0"'
70  
71 ;通过PHP获取$R1_$R0参数分析结果。
72 FunctionEnd