Subversion Repositories checksum-tools

Rev

Rev 19 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9 daniel-mar 1
; ViaThinkSoft Checksum Tools Setup Script for InnoSetup
2
; by Daniel Marschall, ViaThinkSoft
3
; http://www.viathinksoft.com/
4
 
5
[Setup]
6
AppName=ViaThinkSoft Checksum Tools
17 daniel-mar 7
AppVerName=ViaThinkSoft Checksum Tools 1.1
8
AppVersion=1.1
22 daniel-mar 9
AppCopyright=© Copyright 2017 - 2024 ViaThinkSoft
9 daniel-mar 10
AppPublisher=ViaThinkSoft
11
AppPublisherURL=http://www.viathinksoft.com/
12
AppSupportURL=http://www.daniel-marschall.de/
13
AppUpdatesURL=http://www.viathinksoft.com/
22 daniel-mar 14
DefaultDirName={autopf}\ViaThinkSoft Checksum Tools
9 daniel-mar 15
DefaultGroupName=Checksum Tools
16
VersionInfoCompany=ViaThinkSoft
22 daniel-mar 17
VersionInfoCopyright=© Copyright 2017 - 2024 ViaThinkSoft
9 daniel-mar 18
VersionInfoDescription=Checksum Tools Setup
17 daniel-mar 19
VersionInfoTextVersion=1.1.0.0
20
VersionInfoVersion=1.1
9 daniel-mar 21
ChangesAssociations=yes
22 daniel-mar 22
OutputDir=.
9 daniel-mar 23
OutputBaseFilename=ChecksumTools
24
LicenseFile=..\LICENSE
19 daniel-mar 25
; Configure Sign Tool in InnoSetup at "Tools => Configure Sign Tools" (adjust the path to your SVN repository location)
26
; Name    = sign_single   
27
; Command = "C:\SVN\...\sign_single.bat" $f
28
SignTool=sign_single
29
SignedUninstaller=yes
9 daniel-mar 30
 
31
[CustomMessages]
32
Assoc=File associations:
33
 
34
[Languages]
35
;Name: de; MessagesFile: "compiler:Languages\German.isl"
36
 
37
[LangOptions]
38
LanguageName=English
39
LanguageID=$0409
40
 
41
[Components]
42
Name: "dirchecker";  Description: "Recursive directory checker";  Types: full compact custom
43
Name: "editor"; Description: "Checksum file editor"; Types: full
44
 
45
[Tasks]
46
Name: fileassocSFV;  Description: "{cm:AssocFileExtension,'SFV Checksum File','.sfv'}"; GroupDescription: "{cm:Assoc}"; Components: editor
47
Name: fileassocMD5;  Description: "{cm:AssocFileExtension,'MD5 Checksum File','.md5'}"; GroupDescription: "{cm:Assoc}"; Components: editor
48
 
49
[Files]
19 daniel-mar 50
Source: "MD5DirCheck.exe";        DestDir: "{app}"; Flags: ignoreversion signonce; Components: dirchecker
51
Source: "SFVCorrect.exe";         DestDir: "{app}"; Flags: ignoreversion signonce; Components: editor
9 daniel-mar 52
Source: "ChecksumFileIcon.ico";   DestDir: "{app}"; Flags: ignoreversion; Components: editor
53
 
54
[Dirs]
55
 
56
[Icons]
57
Name: "{group}\Recursive directory checker";  Filename: "{app}\MD5DirCheck.exe";  Components: dirchecker
58
Name: "{group}\Checksum file editor"; Filename: "{app}\SFVCorrect.exe"; Components: editor
59
 
60
[Run]
61
Filename: "{app}\MD5DirCheck.exe";  Description: "Run recursive directory checker";  Flags: nowait postinstall skipifsilent; Components: dirchecker
62
Filename: "{app}\SFVCorrect.exe"; Description: "Run checksum file editor"; Flags: nowait postinstall skipifsilent unchecked; Components: editor
63
 
64
[Registry]
65
Root: HKCR; Subkey: ".sfv";                                       ValueName: ""; ValueType: string; ValueData: "VtsChecksumSFV";                   Flags: uninsdeletekey;      Components: editor;  Tasks: fileassocSFV
66
Root: HKCR; Subkey: ".sfv\ShellNew";                              ValueName: "ItemName"; ValueType: string; ValueData: "SFV checksum file";                                    Components: editor;  Tasks: fileassocSFV
67
Root: HKCR; Subkey: ".sfv\ShellNew";                              ValueName: "NullFile"; ValueType: string; ValueData: "";                                                     Components: editor;  Tasks: fileassocSFV
68
Root: HKCR; Subkey: "VtsChecksumSFV";                             ValueName: ""; ValueType: string; ValueData: "SFV checksum File";                Flags: uninsdeletekey;      Components: editor;  Tasks: fileassocSFV
69
Root: HKCR; Subkey: "VtsChecksumSFV\DefaultIcon";                 ValueName: ""; ValueType: string; ValueData: "{app}\ChecksumFileIcon.ico";                                   Components: editor;  Tasks: fileassocSFV
70
Root: HKCR; Subkey: "VtsChecksumSFV\shell\open\command";          ValueName: ""; ValueType: string; ValueData: """{app}\SFVCorrect.exe"" ""%1""";                              Components: editor;  Tasks: fileassocSFV
71
 
72
Root: HKCR; Subkey: ".md5";                                       ValueName: ""; ValueType: string; ValueData: "VtsChecksumMD5";                   Flags: uninsdeletekey;      Components: editor;  Tasks: fileassocMD5
73
Root: HKCR; Subkey: ".md5\ShellNew";                              ValueName: "ItemName"; ValueType: string; ValueData: "MD5 checksum file";                                    Components: editor;  Tasks: fileassocMD5
74
Root: HKCR; Subkey: ".md5\ShellNew";                              ValueName: "NullFile"; ValueType: string; ValueData: "";                                                     Components: editor;  Tasks: fileassocMD5
75
Root: HKCR; Subkey: "VtsChecksumMD5";                             ValueName: ""; ValueType: string; ValueData: "MD5 checksum File";                Flags: uninsdeletekey;      Components: editor;  Tasks: fileassocMD5
76
Root: HKCR; Subkey: "VtsChecksumMD5\DefaultIcon";                 ValueName: ""; ValueType: string; ValueData: "{app}\ChecksumFileIcon.ico";                                   Components: editor;  Tasks: fileassocMD5
77
Root: HKCR; Subkey: "VtsChecksumMD5\shell\open\command";          ValueName: ""; ValueType: string; ValueData: """{app}\SFVCorrect.exe"" ""%1""";                              Components: editor;  Tasks: fileassocMD5
78
 
79
 
80
[Code]
81
function InitializeSetup(): Boolean;
82
begin
83
  if CheckForMutexes('VtsChecksumToolsSetup')=false then
84
  begin
85
    Createmutex('VtsChecksumToolsSetup');
86
    Result := true;
87
  end
88
  else
89
  begin
90
    Result := False;
91
  end;
92
end;
93
function IsAnyComponentSelected: Boolean;
94
var
95
  I: Integer;
96
begin
97
  // Source: https://stackoverflow.com/questions/20691583/innosetup-if-no-components-are-selected-go-back-to-components-page
98
  Result := False;
99
  for I := 0 to WizardForm.ComponentsList.Items.Count - 1 do
100
    if WizardForm.ComponentsList.Checked[I] then
101
    begin
102
      Result := True;
103
      Exit;
104
    end;
105
end;
106
function NextButtonClick(PageID: Integer): Boolean;
107
begin
108
  Result:= True;
109
  if PageID = wpSelectComponents then
110
  begin
111
    if not IsAnyComponentSelected then
112
    begin
113
      MsgBox('No items selected, please select at least one item', mbError, MB_OK);
114
      Result := False;
115
    end;
116
  end;
117
end;