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 var103 nActionID:Integer;104 begin105 // Call our function just before the actual uninstall process begins106 nActionID := 1002;107 if CurUninstallStep = usUninstall then108 begin109 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 begin122 HasRun := IsStatesvrExist();123 if HasRun = 1 then124 begin125 MsgBox('卸载程序检测到你的应用程序正在运行。' #13#13 '请先退出你的应用程序,然后再进行卸载!', mbError, MB_OK);126 Result := false;127 end128 else129 Result := true;130 end;