1 ; Script generated by the Inno Setup Script Wizard. 2 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! 3 4 #define MyAppName "sndaloginguard" 5 #define MyAppPublisher "SNDA, Inc." 6 #define MyAppURL "http://www.sdo.com/" 7 8 ; 9 #define MyAppVersion "1.0.0" 10 #define MyDefaultInstallDir "C:\Program Files\盛大网络\登录助手\" 11 #define MyDefaultPackDir ".\temp\" 12 13 [Setup] 14 ; NOTE: The value of AppId uniquely identifies this application. 15 ; Do not use the same AppId value in installers for other applications. 16 ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) 17 ;PrivilegesRequired=admin 18 AppId={{3D662258-0CAF-4F56-988C-7F12F0DB7ECF} 19 AppName={#MyAppName} 20 AppVersion={#MyAppVersion} 21 ;AppVerName={#MyAppName} {#MyAppVersion} 22 AppPublisher={#MyAppPublisher} 23 AppPublisherURL={#MyAppURL} 24 AppSupportURL={#MyAppURL} 25 AppUpdatesURL={#MyAppURL} 26 DefaultDirName={#MyDefaultInstallDir} 27 DefaultGroupName={#MyAppName} 28 OutputBaseFilename=sndaloginguard_{#MyAppVersion} 29 SetupIconFile=..\..\sdostate-debug\logo.ico 30 Compression=lzma 31 SolidCompression=yes 32 33 [Languages] 34 Name: "english"; MessagesFile: "compiler:Default.isl" 35 36 [Files] 37 Source: {#MyDefaultPackDir}\duilib.dll; DestDir: "{app}"; Flags: ignoreversion 38 Source: {#MyDefaultPackDir}\GdiPlus.dll; DestDir: "{app}"; Flags: ignoreversion 39 Source: {#MyDefaultPackDir}\skin.zip; DestDir: "{app}"; Flags: ignoreversion 40 Source: {#MyDefaultPackDir}\sndaloginguard.exe; DestDir: "{app}"; Flags: ignoreversion 41 Source: {#MyDefaultPackDir}\adcore.dll; DestDir: "{app}"; Flags: ignoreversion 42 Source: {#MyDefaultPackDir}\StatisticInstallInfo.dll; DestDir: "{app}"; Flags: ignoreversion 43 Source: {#MyDefaultPackDir}\updatedownload.exe; DestDir: "{app}"; Flags: ignoreversion 44 Source: {#MyDefaultPackDir}\update.dll; DestDir: "{app}"; Flags: ignoreversion 45 Source: {#MyDefaultPackDir}\config\*.*; DestDir: "{app}\config"; Flags: ignoreversion 46 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files 47 48 [Icons] 49 Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppName}" 50 Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" 51 52 [Registry] 53 Root:HKLM;Subkey:SOFTWARE\snda\sndaloginguard; ValueType: string; ValueName:Path;ValueData:{app}\sndaloginguard.exe;Flags: uninsdeletevalue 54 55 56 [Run] 57 ;Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent 58 Filename: "{app}\sndaloginguard.exe "; Parameters:"-INSTALL"; Flags: nowait 59 [Code] 60 61 procedure Installed(nActionID:Integer); 62 external 'Installed@files:StatisticInstallInfo.dll cdecl setuponly'; 63 64 procedure Uninstalled(nActionID:Integer); 65 external 'Uninstalled@{app}\StatisticInstallInfo.dll cdecl uninstallonly'; 66 67 function IsStatesvrExist():Integer; 68 external 'IsStatesvrExist@{app}\StatisticInstallInfo.dll stdcall uninstallonly'; 69 70 function GetMyParam(PName:string):string; 71 var 72 CmdLine : String; 73 CmdLineLen : Integer; 74 i : Integer; 75 begin 76 Result := ''; 77 CmdLineLen:=ParamCount(); 78 for i:=0 to CmdLineLen do 79 begin 80 CmdLine:=ParamStr(i); 81 if CmdLine = PName then 82 begin 83 CmdLine:=ParamStr(i+1); 84 Result := CmdLine; 85 Exit; 86 end; 87 end; 88 end; 89 90 procedure DeinitializeSetup(); 91 var 92 res: String; 93 nActionID:Integer; 94 95 begin 96 res := GetMyParam('-myParam'); 97 nActionID := 1001; 98 Installed(nActionID); 99 end; 100 101 procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 102 var 103 nActionID:Integer; 104 begin 105 // Call our function just before the actual uninstall process begins 106 nActionID := 1002; 107 if CurUninstallStep = usUninstall then 108 begin 109 Uninstalled(nActionID); 110 // Now that we're finished with it, unload MyDll.dll from memory. 111 // We have to do this so that the uninstaller will be able to remove the DLL and the {app} directory. 112 UnloadDLL(ExpandConstant('{app}\StatisticInstallInfo.dll')); 113 //delete everything under {app}\ 114 DelTree(ExpandConstant('{app}'), True, True, True); 115 end; 116 end; 117 118 function InitializeUninstall(): Boolean; 119 var 120 HasRun : Integer; 121 begin 122 HasRun := IsStatesvrExist(); 123 if HasRun = 1 then 124 begin 125 MsgBox('卸载程序检测到你的应用程序正在运行。' #13#13 '请先退出你的应用程序,然后再进行卸载!', mbError, MB_OK); 126 Result := false; 127 end 128 else 129 Result := true; 130 end;
相关文章: