FrameMaker versions in parallel
Switching for FM 6
Switching for FM 7 and above
Switching between standard and advanced version
Putting it all together
Reducing redundant files
Caveat
According to the licensing terms of Adobe, the modification of dlls may invalidate your licence.
Also keep in mind that the following is legal only if you have the registration keys for all language versions!
Switching between two UI versions
In my environment I use distinct path names for the installed versions of
FrameMaker: H:\Adobe\FrameMaker.6en
or H:\Adobe\framemaker.71en
.
This eases the switch between version, because only a part of the path name
changes, for example from 6en
to 6de
.
Switching for FM 6
Until FM 6 it was possible to have various versions installed and switching between them just by changing a pointer in the registry. There is no speciality with installing and running major FM release versions (e.g. 5.5 and 6.0) on the same Windows installation. You need, however, a special switching mechanism to have two language versions (UI language, for example, a German and an English FM version) of the same release level installed and running.
The registry key for FrameMaker defines the location of the maker.ini
file.
This key is only set, if it does not yet exist. Hence it is necessary to
delete it between the starts of different UI-language versions of FM. The
REG key is set by using the fmreg.txt
file from the start directory
of the FM program ($HOME
).
The following WinBatch files (see Wilson Window Ware) start the one or the other version. You may do the same also with advanced DOS batch commands or you may combine these two an even add a user interface (see switching between standard and advanced version)
English version of FrameMaker
; The registry editor must not be open when starting this batch file! PgmFrame= "H:\adobe\FrameMaker.6en\FrameMaker.exe" ErrorMode(@off) RegDeleteKey (@REGMACHINE, "SOFTWARE\Adobe\FrameMaker\6.0") ErrorMode(@cancel) Run (PgmFrame, "") While WinExist ("Registry") == @FALSE ; wait for the message (Frame has added the key) EndWhile SendKeysTo ("Registry", "{ENTER}") ; Press OK Exit
German version of FrameMaker
PgmFrame= "H:\adobe\FrameMaker.6en\FrameMaker.exe" ... etc.
Switching for FM 7 and above
You can not install a second version (with a different UI language) of FM. The installation program will not allow you to change the language (select the appropriate button). Hence you need to do the following:
Note: References to ASN and REG are irrelevant for FM 8 and higher.
- You must have a serial number for each of the languages – the serial number for the German version is not accepted in the English version!
- Install the first language (e.g. the german version) to a distinct location,
for example
H:\Adobe\framemaker.72de
and check out everything. - Rename this location (e.g. to
H:\Adobe\framemaker.72de.saved
) to avoid deletion of files by step 4 - Uninstall FrameMaker from the original installation path (
H:\Adobe\framemaker.72de
). This will only remove the items in the registry and the start menu, because the file location has been renamed. - Install the second language (e.g. the english version) to a language
distinct path (
H:\Adobe\framemaker.72en
) - Inspect the registry: you will find
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\FrameMaker\7.2
with the pointer (REG value) toFMHome
, in this caseh:\adobe\framemaker.72en
. - In
HKEY_CURRENT_USER\Software\Adobe\FrameMaker\7.2\Registration
you will find the keySERIAL
with the serial number of the second installation. However, in the respective maker.ini files theASN
andREG
numbers are according to the installation - and these two sets must be different! - Re-activate you firstly installed version by renaming
H:\Adobe\framemaker.72de
.saved
back toH:\Adobe\framemaker.72de
. This can not be started yet, because the registry entries point to the second installation. - You switching mechanism must handle the following REG keys:
Root Key & ValueName Value (see note below) HKLM SOFTWARE\Adobe\FrameMaker\7.2\FMHome H:\Adobe\framemaker.%ver%\ HKLM SOFTWARE\Adobe\FrameMaker\7.2\IniFile H:\Adobe\framemaker.%ver%\maker.ini HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\FrameMaker.exe\ H:\Adobe\framemaker.%ver%\FrameMaker.exe HKLM SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\FrameMaker.exe\Path H:\Adobe\framemaker.%ver%\ HKCR FrameMaker.Book\Shell\Open\Command, "h:\adobe\framemaker.%ver%\FrameMaker.exe" "`%1" HKCR FrameMaker.Book\Shell\Print\Command, "h:\adobe\framemaker.%ver%\FrameMaker.exe" "`%1" HKCR FrameMaker.Document\Shell\Open\Command, "h:\adobe\framemaker.%ver%\FrameMaker.exe" "`%1" HKCR FrameMaker.Document\Shell\Print\Command, "h:\adobe\framemaker.%ver%\FrameMaker.exe" "`%1" HKCR FrameMaker.Interchange.Format\Shell\Open\Command, "h:\adobe\framemaker.%ver%\FrameMaker.exe" "`%1" HKCR FrameMaker.Interchange.Format\Shell\Print\Command, "h:\adobe\framemaker.%ver%\FrameMaker.exe" "`%1"
Note: The notation %ver% is symbolic and must be replaced by (in this example case)72en
or72de
.
Note: The switching in the registry can be eased by starting a distinct
REG file with all the information in it. For example, fm8de.reg
may look
like this:
REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\FrameMaker\8] "ProductCode"="{7B4CA480-7321-4AD4-BED1-F7177671C37E}" "IniFile"="H:\\Adobe\\framemaker.8de\\maker.ini" "FMHome"="H:\\Adobe\\framemaker.8de\\" "AdobeCommonSupport"=dword:00000001 @="" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\FrameMaker.exe] "Path"="H:\\Adobe\\framemaker.8de\\" @="H:\\Adobe\\framemaker.8de\\FrameMaker.exe" ...
Switching between standard and enhanced version
You have installed add-ons and plug-ins and still want to give support to people who have only the native FrameMaker installation. But after some time you can not remember which menu items are not present in the original installation etc. So you want to have access to the standard installation and to your enhanced version. As an example I show you my environment which uses the following enhancements:
- Shlomo Perets' enhanced toolbar
- Klaus Daube's modified dialogues
- Various plug-ins including FrameScript
The structure of directories and files needs to be extended (the highlighted paths are the ones of the original installation):
H:\Adobe\framemaker.72en\maker.ini.ori |
Saved original maker.ini |
H:\Adobe\framemaker.72en\maker.ini.ddd |
With all the modifications |
H:\Adobe\framemaker.72en\maker.ini |
The one used by FM (a copy of either x.ori or x.ddd ) |
H:\Adobe\framemaker.72en\fminit\Plugins.ori |
Saved original set of plug-ins |
H:\Adobe\framemaker.72en\fminit\Plugins.ddd |
D+DD's set of plug-ins |
H:\Adobe\framemaker.72en\fminit\Plugins |
The current working directory (a copy of either x.ori or x.ddd ) |
H:\Adobe\framemaker.72en\fminit\configui\CustomUI.cfg.ddd |
With the modifications of the SP toolbar. |
H:\Adobe\framemaker.72en\fminit\configui\CustomUI.cfg |
Created as copy from x.ddd . This file does not exist in
the original installation |
H:\Adobe\framemaker.72en\fminit\fmdlg.dll.ori |
Saved original UI dll |
H:\Adobe\framemaker.72en\fminit\fmdlg.dll.ddd |
D+DD's enhanced UI dll |
H:\Adobe\framemaker.72en\fminit\fmdlg.dll |
The working dll (a copy of either x.ori or x.ddd ) |
If you also have installed two UI versions, you have twice this structure.
The script noted hereafter does not fail if you do not have modified
fmdlg.dll
for any of the UI languages.
Putting it all together
A dialogue opens when I execute the script fm-start.ahk (an AutoHotkey script):
Reducing redundant files
With the growing of disks this section is no more that relevant …
Many files are the same for both language versions and hence need not to
be installed twice. In the maker.ini
file of the second language
these are referenced with absolute paths. From Shlomo
Perets' customised user interface also most of the files can be shared.
Most of the redundant files can not be deselected at installation time, the respective directories must be deleted after installation.
Be aware that Adobe has localised (translated) also the names of the directories in which the files reside. For example TemplateDir = templates (en) or = Schabl (de); Samples = samples (en) or Beispiele (de). So some care is necessary here.
English version of FrameMaker
maker.ini - section [Directories]
FilterDllDir= filters LanguageDir= dict OnlineManuals= omanuals Samples= samples TemplateDir= D:\_doc-std\Frame Templates= D:\_DOC-STD\Frame\FM-templates
maker.ini - section [files]
ConfigCustomUIFile=H:\adobe\FM-addons\Microtype\Toolbar_etc\MyCustomUI.cfg EquationDoc= H:\adobe\FM-addons\Microtype\Toolbar_etc\MyEquation.fm ToolBarIniFile= H:\adobe\FM-addons\Microtype\Toolbar_etc\MyFMToolbr.ini UserDictionary= D:\_DOC-STD\Frame\ddd_en.dct
German version of FrameMaker
maker.ini - section [Directories]
FilterDllDir= H:\adobe\FrameMaker.6en\filters LanguageDir= H:\adobe\FrameMaker.6en\dict OnlineManuals= H:\adobe\FrameMaker.6en\omanuals Samples= H:\adobe\FrameMaker.6en\samples TemplateDir= D:\_doc-std\Frame Templates= D:\_DOC-STD\Frame\FM-templates
maker.ini - section [files]
ConfigCustomUIFile=H:\adobe\FM-addons\Microtype\Toolbar_etc\MyCustomUI.cfg SiteDictionary= H:\adobe\FrameMaker.6en\dict\site.dct ToolBarIniFile= H:\adobe\FM-addons\Microtype\Toolbar_etc\MyFMToolbr_de.ini UserDictionary= D:\_DOC-STD\Frame\ddd_de.dct