Best practice for installing multiple versions of Clarion

Hello -

What would be an ideal way to set up multiple versions of C11x on a workstation and copy IDE configurations/preferences/3rd libsrc . I’m on 11.0.13505 and want to install a couple of newer recent updates.

Thanks,
-R

Assuming your main C11 is installed to C:\Clarion11
I would rename your main C11 version folder.
The install the test version 1 to C:\Clarion11.
rename that folder to whatever you want for test version 1.
repeat for as many test version as you want.
Rename your original main C11 folder back to C:\Clarion11.
This keeps the “installed” folder on your system for C11 as C:\Clarion11

Now use the Tools->Options->Clarion->Versions feature to setup the test versions in your primary IDE.
This allows you to switch between any of these versions from the Build->Versions menu. No renaming folders, no closing the IDE and loading another one, etc.

I think this is one of the best features of the modern IDE.

1 Like

Hi,

Also as well as what @Rick_UpperPark has said, @Bruce did a Webinar on just this subject a few weeks back.

YouTube link is here

Regards

Mark

1 Like

There was some discussion in the below post,:

Gus at CW Handy has a new utility called HNDCLARIONDRIVE he released February 2021 that you can read about in the below link. Article discusses how it reconfigures the Registry to point at an IDE folder (an alternative to renaming directories).

https://web.cwhandy.ca/february2021.html

I thought Lee White @lodestar had a Clarion Switcher but on the web page it looks like it may be for C6 and not C7+

1 Like

IF you have visual studio installed, MS will make Visual Studio the preferred choice so this below will help with the registry configurations:

Edit. One other point, if you need both Visual Studio and Clarion installed, I would install them into their own separate virtual PC’s (Hyper-V or VMware) to avoid any problems between the two. But when I run Get Kali | Kali Linux on VMware to monitor my network communication using wireshark, someone changes the network settings in the VMware virtual pc after every reboot. So in VMware, in the virtual machine settings, click network adaptor, and where you have the UAC shield on configure adaptors, I switch off all the Hyper-V virtual Ethernet adaptors, leaving just the hardware nic enabled and yet every reboot all the Hyper-V bridge adapters are re-enabled. This should not happen, but it shows that UAC settings are still being changed somehow and its not by me!

—>8------
The Solution Explorer in the App Gen shows the Solution file and its properties. This file may be called by Microsoft Visual Studio Solution if you have MS Visual Studio install. If you want to change this back to Clarion, then there are a few ways to do this.

This method will only be applied to new user profiles during their first login session.

Dism.exe /online /Export-DefaultAppAssociations:C:\PS\DefaultAssoc.xml

Edit the xml file

Dism.exe /Online /Import-DefaultAppAssociations:C:\PS\DefaultAssoc.xml

There is also group policy where you can import your program associations xml file and apply them to all current users on a computer.

Computer Configuration > Administrative Templates > Window Components > File Explorer

There is also the tradition registry editing route

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\[.File Ext]
\OpenWithList
and
\OpenWithProgids

Progids is the registered (default) app for opening these file extensions.

Class registration and file name extension information is stored under both the HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER keys.

The HKEY_LOCAL_MACHINE\Software\Classes key contains default settings that can apply to all users on the local computer. The HKEY_CURRENT_USER\Software\Classes key contains settings that apply only to the interactive user. The HKEY_CLASSES_ROOT key provides a view of the registry that merges the information from these two sources. HKEY_CLASSES_ROOT also provides this merged view for applications designed for previous versions of Windows.

The user-specific settings have priority over the default settings. For example, the default setting might specify a particular application to handle .doc files. But a user can override this setting by specifying a different application in the registry.

Registry functions such as RegOpenKeyEx or RegQueryValueEx allow you to specify the HKEY_CLASSES_ROOT key. When you call these functions from a process running in the interactive user account, the system merges the default settings in HKEY_LOCAL_MACHINE\Software\Classes with the interactive user’s settings at HKEY_CURRENT_USER\Software\Classes. For more information on how these settings are merged, see Merged View of HKEY_CLASSES_ROOT.

To change the settings for the interactive user, store the changes under HKEY_CURRENT_USER\Software\Classes rather than HKEY_CLASSES_ROOT.

HKEY_CLASSES_ROOT = HKEY_LOCAL_MACHINE\Software\Classes

Any changes made to HKEY_CLASSES_ROOT\.[FileExtention] will appear in HKEY_LOCAL_MACHINE\Software\Classes\.[FileExtention]

HKEY_CURRENT_USER\Software\Classes = User Preference
HKEY_CLASSES_ROOT = Machine Wide

HKEY_CURRENT_USER\Software\Classes has priority over HKEY_CLASSES_ROOT

A programmatic identifier (ProgID) is a registry entry that can be associated with a CLSID. Like the CLSID, the ProgID identifies a class but with less precision because it is not guaranteed to be globally unique.

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ {ProgID}

CLSID Associates a ProgID with a CLSID.
Insertable Indicates that this class is insertable in OLE 2 containers.
Protocol Indicates that this OLE 2 class is insertable in OLE 1 containers.
Shell Provides Windows 3.1 shell printing and File Open information.

A CLSID is a globally unique identifier that identifies a COM class object. If your server or container allows linking to its embedded objects, you need to register a CLSID for each supported class of objects.

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\ {CLSID}
AutoConvertTo Specifies the automatic conversion of a given class of objects to a new class of objects.
AutoTreatAs Automatically sets the CLSID for the TreatAs key to the specified value.
AuxUserType Specifies an application’s short display name and application names.
Control Identifies an object as an ActiveX Control.
Conversion Used by the Convert dialog box to determine the formats an application can read and write.
DataFormats Specifies the default and main data formats supported by an application.
DefaultIcon Provides default icon information for iconic presentations of objects.
InprocHandler Specifies whether an application uses a custom handler.
InprocHandler32 Specifies whether an application uses a custom handler.
InprocServer Specifies the path to the in-process server DLL.
InprocServer32 Registers a 32-bit in-process server and specifies the threading model of the apartment the server can run in.
Insertable Indicates that objects of this class should appear in the Insert Object dialog box list box when used by COM container applications.
Interface An optional entry that specifies all interface IDs (IIDs) supported by the associated class.
LocalServer Specifies the full path to a 16-bit local server application.
LocalServer32 Specifies the full path to a 32-bit local server application.
MiscStatus Specifies how to create and display an object.
ProgID Associates a ProgID with a CLSID.
ToolBoxBitmap32 Identifies the module name and resource ID for a 16 x 16 bitmap to use for the face of a toolbar or toolbox button.
TreatAs Specifies the CLSID of a class that can emulate the current class.
Verb Specifies the verbs to be registered for an application.
Version Specifies the version number of the control.
VersionIndependentProgID Associates a ProgID with a CLSID. This value is used to determine the latest version of an object application.

Registers new interfaces by associating an interface name with an interface ID (IID). There must be one IID subkey for each new interface.

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\ {IID}
BaseInterface Identifies the interface from which the current interface is derived.
NumMethods Contains the number of methods in the associated interface, including methods from derived interfaces.
ProxyStubClsid Maps an IID to a CLSID in 16-bit proxy DLLs.
ProxyStubClsid32 Maps an IID to a CLSID in 32-bit proxy DLLs.

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\

.sln\OpenWithList
a REG_SZ {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\OpenWith.exe
b REG_SZ Notepad.exe
c REG_SZ Clarion.exe
d REG_SZ VSLauncher.exe
MRUList REG_SZ bdac

MRUList is the order the Open with list displays the choices.

.sln\OpenWithProgids
VisualStudio.Launcher.sln Reg_None (zero-length binary value)

.cwproj\OpenWithList
a REG_SZ {1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}\OpenWith.exe
b REG_SZ NOTEPAD.EXE
MRUList REG_SZ ba

.app\OpenWithList
a REG_SZ Clarion.exe
MRUList REG_SZ a

.dct\OpenWithList
a REG_SZ Clarion.exe
MRUList REG_SZ a

HKEY_CLASSES_ROOT\.androidproj
Content Type REG_SZ Application/xml

HKEY_CLASSES_ROOT\.androidproj\OpenWithProgids
VisualStudio.androidproj.766ad33a REG_SZ
VisualStudio.Launcher.androidproj.766ad33a REG_SZ

The number (766ad33a) is a hash value of Visual Studio.

HKEY_CLASSES_ROOT\.asm
Content Type REG_SZ text/plain
PerceivedType REG_SZ text

HKEY_CLASSES_ROOT\.asm\OpenWithProgids
VisualStudio.asm.766ad33a REG_SZ
HKEY_CLASSES_ROOT\.asm\PersistentHandler
(Default) REG_SZ {5e941d80-bf96-11cd-b579-08002b30bfeb}

HKEY_CLASSES_ROOT\.cpp
Content Type REG_SZ text/plain
PerceivedType REG_SZ text

HKEY_CLASSES_ROOT\.cpp\OpenWithProgids
VisualStudio.asm.766ad33a REG_SZ

HKEY_CLASSES_ROOT\.cpp\PersistentHandler
(Default) REG_SZ {5e941d80-bf96-11cd-b579-08002b30bfeb}
HKEY_CLASSES_ROOT\.dct\PersistentHandler
(Default) REG_SZ {098f2470-bae0-11cd-b579-08002b30bfeb}

HKEY_CLASSES_ROOT\.TPS
(Default) REG_SZ TPS data file

HKEY_CLASSES_ROOT\.txt
(Default) REG_SZ txtfile
Content Type REG_SZ text/plain
PerceivedType REG_SZ text

HKEY_CLASSES_ROOT\.txt\OpenWithProgids
soffice.StarCalcDocument.6 REG_SZ
soffice.StarWriterDocument.6 REG_SZ

HKEY_CLASSES_ROOT\.txt\PersistentHandler
(Default) REG_SZ {5e941d80-bf96-11cd-b579-08002b30bfeb}

HKEY_CLASSES_ROOT\.txt\ShellNew
ItemName REG_EXPAND_SZ @%SystemRoot%\system32\notepad.exe,-470
NullFile REG_SZ