Search code examples
registryinno-setupistool

ISTool problems


how can i set via ISTool these things:

  • How can i set instalation path based on 64/32 system? I would like to see, that setup will use right instalation path if user have 32/64 system.

  • I want, that setup will create specific registry key where will be instalation path based on user instalation folder. User can change folder but I do not how to create dynamic registry key. I can create fix registry key that will write what I want.

Example: HKEY_CURRENT_USER\Software\Ascaron Entertainment\Sacred 2]
"ShortcutProgramMenu"="Installed"
"Language"="en_UK"
"Speech"="en_UK"
"MovieTrack"="5"
"CurrentVersion"="2.34.0.0"
"InstallPath"="{PATH}\\"
"LastUpdateCheck"=dword:000b3872

[HKEY_LOCAL_MACHINE\SOFTWARE\Ascaron Entertainment\Sacred 2]
"Language"="en_UK"
"Speech"="en_UK"
"MovieTrack"="5"
"InstallPath"="{PATH}\\"
"CurrentVersion"="2.34.0.0"

I want that, InstallPath that will be based od user decision. Thx for help.


Solution

  • Your [Registry] section would look like this:

    [Registry]
    Root: HKCU; Subkey: Software\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "ShortcutProgramMenu"; ValueData: "Installed";
    Root: HKCU; Subkey: Software\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "Language"; ValueData: "en_UK";
    Root: HKCU; Subkey: Software\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "Speech"; ValueData: "en_UK";
    Root: HKCU; Subkey: Software\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "MovieTrack"; ValueData: "5";
    Root: HKCU; Subkey: Software\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "CurrentVersion"; ValueData: "2.34.0.0";
    Root: HKCU; Subkey: Software\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "InstallPath"; ValueData: "{app}\";
    Root: HKCU; Subkey: Software\Ascaron Entertainment\Sacred 2; 
    ValueType: dword; ValueName: "LastUpdateCheck"; ValueData: "$000b3872";
    Root: HKLM; Subkey: SOFTWARE\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "Language"; ValueData: "en_UK";
    Root: HKLM; Subkey: SOFTWARE\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "Speech"; ValueData: "en_UK";
    Root: HKLM; Subkey: SOFTWARE\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "MovieTrack"; ValueData: "5";
    Root: HKLM; Subkey: SOFTWARE\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "InstallPath"; ValueData: "{app}\";
    Root: HKLM; Subkey: SOFTWARE\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "CurrentVersion"; ValueData: "2.34.0.0";
    

    In this case if you will install application on 64bit system, you will find your HKLM keys in Wow6432Node. But if you want/need keys to be added to 64bit branch, you could create additional entries with Check: IsWin64.

    Example:

    Root: HKLM; Subkey: SOFTWARE\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "CurrentVersion"; ValueData: "2.34.0.0"; Check: not IsWin64
    Root: HKLM64; Subkey: SOFTWARE\Ascaron Entertainment\Sacred 2; 
    ValueType: string; ValueName: "CurrentVersion"; ValueData: "2.34.0.0"; Check: IsWin64