Fake Setup Clarion 9 to install older Accessory Setups like BoTpl

Based on discussion in the Changes Topic there are old Setup Builder Clarion Accessory installers that work with a maximum of Clarion 8, 9 or 9.1.

Attached is a simple Clarion program “Fake Setup Clarion 9” that creates the 9.0 Registry Key and Folder that Setup Builder looks for. I also included a Version 8. Open the Project CLW and change the folder RootPath STRING('C:\Clarion9_Fake') , then build and it runs like this:

image

Bo’s setup writes to C:\Users\Public\Documents\SoftVelocity\Clarion9\Accessory under \Comsoft7\BoTpl 4.4\BCLabels so if that folder does not exist I open Explorer to Public Dcouments and a Message tells you to make \SoftVelocity\Clarion9\Accessory. I tried to MkDir but it always failed, even running as Admin

image

That’s it. When its done you have the registry key pointing to your X:\Clarion9_Fake folder which has been created.

I ran this and then installed BoTpl44SU.exe into Clarion9_Fake with I zipped and attached BoTpl44SU_Installed.zip (2.9 MB)

Fake Setup Clarion 9 or 8: FakeSetupClarion9or8.zip (7.9 KB)

Here is a code excerpt of how it works (a PUTREG and Make Dir):

VersionNo       STRING('9.0')                   !FYI see Clarion9 below in C:\Users\Public\Documents\SoftVelocity\Clarion9
RootPath        STRING('C:\Clarion9_Fake')      !Written to Registry HKLM SOFTWARE\...\Uninstall InstallLocation                  
RegKeyInstaller STRING('{{905A4CB0-90B8-11E2-3D6C-299385554AE1}')   !9.0     
UninstallPath   STRING('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') !+ \{hhhhhh-...       
InstallLocation STRING('InstallLocation')
PublicClarion   STRING('SoftVelocity\Clarion9\Accessory')          !In C:\Users\Public\Documents\
  
    TestGetReg = GETREG(REG_LOCAL_MACHINE,UninstallPath &'\'& RegKeyInstaller,InstallLocation) 
    IF TestGetReg THEN TestGetReg='||**** InstallLocation EXISTS in Reg = "' & CLIP(TestGetReg) & '" ****'.
    
    CASE MESSAGE('This will setup a fake Clarion install for Setup Builder '&|
         'to find.'&|
        '||   Version: <9>'&VersionNo&|
         '|   Root Path: <9>'&RootPath&|
         '|   Reg Key: <9>'&RegKeyInstaller&' '&|   
         '|   Reg Path: <9>'&UninstallPath&' '&|   
         '|   Reg Name: <9>'&InstallLocation&' '&|   
         CLIP(TestGetReg) & |
         '||This will make the folders and registry keys.'&|
         '|You must have "Run as Admin" to write to HKLM.', |
         'Fake Clarion Setup', ICON:Question, |
          'Setup Fake|Cancel', 2)
    OF 1  ! Name: Setup Fake
    OF 2 ; RETURN  ! Name: Cancel  (Default)
    END !CASE    
    
    MakeDir(RootPath,'')
    IF ~EXISTS(RootPath) THEN 
        Message('Failed to MakeRootDir ' & RootPath,MsgCaption)
        RETURN 
    END 

    !-----------------------
    !BoTPL writes to C:\Users\Public\Documents\SoftVelocity\Clarion9\Accessory\Comsoft7\BoTpl 4.4\BCLabels
    PublicDocsFolder = CLIP(FolderCls.ISystemFolder.GetDir(SV:CSIDL_COMMON_DOCUMENTS)) 
    IF ~PublicDocsFolder THEN 
        Message('Odd SV:CSIDL_COMMON_DOCUMENTS not found',MsgCaption) 
    ELSIF ~EXISTS(PublicDocsFolder &'\'& PublicClarion)  !C:\Users\Public\Documents\SoftVelocity\Clarion9\Accessory
        RUN('Explorer.exe /e,"' & PublicDocsFolder &'"')  

        CASE MESSAGE('Explorer is opened to: '&PublicDocsFolder&|
             '||In Public Documents YOU must make the below sub folders that some '&|
             'installs update:'&|
             '||Under: ' &  PublicDocsFolder &|
             '|Make:  ' &  PublicClarion &|
             '|', MsgCaption, ICON:Asterisk,'I Made Dirs|Cancel|Ignore',,MSGMODE:CANCOPY) 
        OF 1  ! Name: I Made Dirs
              IF ~EXISTS(PublicDocsFolder &'\'& PublicClarion) THEN STOP('Folder does not exist ' & PublicDocsFolder &'\'& PublicClarion).
        OF 2 ; RETURN  ! Name: Cancel  (Default)
        END !CASE
     END     
    !-----------------------
    
    IF PUTREG(REG_LOCAL_MACHINE,UninstallPath &'\'& RegKeyInstaller,'InstallLocation', RootPath, REG_SZ )
       Message('PUTREG failed error ' & Error() &  |
                '||'& UninstallPath &'|'& RegKeyInstaller &'  ' & InstallLocation & '|'& RootPath,MsgCaption)
       RETURN                 
    END 

    TestGetReg = GETREG(REG_LOCAL_MACHINE,UninstallPath &'\'& RegKeyInstaller ,InstallLocation) 
    IF ~TestGetReg THEN TestGetReg='GETREG Error ' & ERROR().
    IF TestGetReg <> RootPath THEN
       Message('PUTREG ' & InstallLocation & ' appears to have Failed||Wrote: ' & RootPath &'|ReRead: '& TestGetReg ,MsgCaption) 
    END 
    
    MakeDir(RootPath,'Bin')                     !Setup a few assume Install will do the rest 
    MakeDir(RootPath,'Accessory')               !BO worked fine with just BIN setup
    MakeDir(RootPath,'Accessory\libsrc')       
    MakeDir(RootPath,'Accessory\libsrc\win')       
    MakeDir(RootPath,'Accessory\template')       
    MakeDir(RootPath,'Accessory\template\win')       
    
    Message(VersionNo & ' all setup in ' & RootPath, MsgCaption) 
    RETURN

Bo TPL Setup lists my Fake 8 and 9

image

image

4 Likes

Fred posted all the GUID keys in Softvelocity.clarion.addons.setupbuilder. They match what I found in my uninstall logs. I did not have the version 7

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

These are the Clarion GUIDs:

* Clarion 7 - {01D4BB50-BD48-11DB-6784-067D01F418BE}
* Clarion 7.1 and 7.2 and 7.3 - {479A07C0-EF05-11DE-6DF1-18371B021649}
* Clarion 8 - {19336650-F595-11DF-72AE-06609D572CD6}
* Clarion 9 - {905A4CB0-90B8-11E2-3D6C-299385554AE1}
* Clarion 9.1 - {5FBB5960-7EDC-11E3-3D6C-05B078044AE1}
* Clarion 10 - {9B04EBD0-8ACA-11E4-4823-04D0CF9C0029}
* Clarion 11 - {40387FE0-70B9-11E8-41BB-330DD2345AF1}  also 11.1

11.1 uses the same GUID Product ID as 11 which makes for some confusion when both are on the same machine. I don’t get it I need them to coexist. There is a discuss in Softvelocity.clarion.addons.setupbuilder subject “Install that knows about C11.1”. SB since 2015 can be run with /DisableAuto “option also lets you support different Clarion build
of the same version”.

This post is about getting old stuff installed although you could make a Fake 10 or 11 install to test. Open a new post to discuss 11.1 issues more.

1 Like

If you want to add C11.1 for completeness, it is {40387FE0-70B9-11E8-41BB-330DD2345AF1}

1 Like