Subversion Repositories checksum-tools

Rev

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