| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | ; -- Example3.iss --; Same as Example1.iss, but creates some registry entries too and allows the end; use to choose the install mode (administrative or non administrative).; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES![Setup]AppName=My ProgramAppVersion=1.5WizardStyle=modernDefaultDirName={autopf}\My ProgramDefaultGroupName=My ProgramUninstallDisplayIcon={app}\MyProg.exeCompression=lzma2SolidCompression=yesOutputDir=userdocs:Inno Setup Examples OutputChangesAssociations=yesUserInfoPage=yesPrivilegesRequiredOverridesAllowed=dialog[Files]Source: "MyProg.exe"; DestDir: "{app}"Source: "MyProg.chm"; DestDir: "{app}"Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme[Icons]Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"; NOTE: Most apps do not need registry entries to be pre-created. If you; don't know what the registry is or if you need to use it, then chances are; you don't need a [Registry] section.[Registry]; Create "Software\My Company\My Program" keys under CURRENT_USER or; LOCAL_MACHINE depending on administrative or non administrative install; mode. The flags tell it to always delete the "My Program" key upon; uninstall, and delete the "My Company" key if there is nothing left in it.Root: HKA; Subkey: "Software\My Company"; Flags: uninsdeletekeyifemptyRoot: HKA; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekeyRoot: HKA; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "Language"; ValueData: "{language}"; Associate .myp files with My Program (requires ChangesAssociations=yes)Root: HKA; Subkey: "Software\Classes\.myp"; ValueType: string; ValueName: ""; ValueData: "MyProgramFile.myp"; Flags: uninsdeletevalueRoot: HKA; Subkey: "Software\Classes\.myp\OpenWithProgids"; ValueType: string; ValueName: "MyProgramFile.myp"; ValueData: ""; Flags: uninsdeletevalueRoot: HKA; Subkey: "Software\Classes\MyProgramFile.myp"; ValueType: string; ValueName: ""; ValueData: "My Program File"; Flags: uninsdeletekeyRoot: HKA; Subkey: "Software\Classes\MyProgramFile.myp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\MyProg.exe,0"Root: HKA; Subkey: "Software\Classes\MyProgramFile.myp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MyProg.exe"" ""%1"""; HKA (and HKCU) should only be used for settings which are compatible with; roaming profiles so settings like paths should be written to HKLM, which; is only possible in administrative install mode.Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty; Check: IsAdminInstallModeRoot: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey; Check: IsAdminInstallModeRoot: HKLM; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}"; Check: IsAdminInstallMode; User specific settings should always be written to HKCU, which should only; be done in non administrative install mode.Root: HKCU; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "UserName"; ValueData: "{userinfoname}"; Check: not IsAdminInstallModeRoot: HKCU; Subkey: "Software\My Company\My Program\Settings"; ValueType: string; ValueName: "UserOrganization"; ValueData: "{userinfoorg}"; Check: not IsAdminInstallMode[Code]function ShouldSkipPage(PageID: Integer): Boolean;begin  // User specific pages should be skipped in administrative install mode  Result := IsAdminInstallMode and (PageID = wpUserInfo);end;
 |