Programatically determine installation location for InDesign CS3, CS4, CS5, AND CS5.5 (Windows)

We build plug-ins for all versions of InDesign from CS3 and later, for Windows and Mac.
To deploy our plug-in(s) on Windows, we use InstallShield, which has a somewhat complicated mechanism to locate InDesign.exe and determine its version so we know which plug-in(s) to install, but basically, the location is determined (via the RegLocator table in InstallShield) based on this registry setting:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\InDesign.exe
This has been working fine for all versions of InDesign since CS2.  However, that location is apparently no longer set by the InDesign CS5.5 installer.  So, we need to find some other way of programatically locating InDesign CS5.5 with our installer.
I've searched the registry of a machine with InDesign CS5.5  installed, and there are other registry entries related to InDesign, but those  entries are not set by earlier versions of the InDesign installer.  Ideally, there would be a registry setting, or some other reliable marker we can use to locate the InDesign installation, which is consistent across all versions of InDesign (at least back to CS3).
Using the registry setting is something we came up with on our own via  trial-and-error, since, as far as I know, there is no documented way to  locate the InDesign  installation folder.  (Our Mac installer uses a simpler mechanism to locate InDesign by the application name and version number.)
I find the apparent lack of documentation on this a bit ironic, since just about every other aspect of the SDK and the methods for creating InDesign plug-ins is extremely well documented, expect for the last final bit one needs to know to get to the promised land of actually deploying a carefully crafted plug-in to customers' machines.  (This seems to be true of the Acrobat SDK as well.)  However, I could have just missed the relevant documentation, in which case, please point me to it.
So, is there a recommended way to programatically  locate the InDesign installation location on Windows?  How are other people doing this in their installers?

Hi Dan,
this is the InDesign plugins SDK forum, you need the installer forum....
Just kidding. I use a really hacky piece of VB to install my plugins while I'm developing...
here's the bit which works out the folder depending on which version I'm compiling for.
That gives you the gist anyway, and I imagine that most installers are going to do more or less the same thing, except they'll have short cuts ways of getting it.
There's probably a better way, but this works for me...
    Private Function DiscoverApplicationFolderFromName(ByRef strApplicationName As String) As String
        Dim strApplicationSignature As String
        Dim strDefaultPath As String
        If (g_strCreativeSuiteVersion = CREATIVE_SUITE_5) Then
            ' special case for CS5, because a debug machine might have CS5 or CS5.5 or both installed.
            ' plugins built with the SDK for 5.5 will not run in CS5 apps
            strApplicationSignature = strApplicationName + ".Application." + CREATIVE_SUITE_55
            Dim strInCopyPath = DiscoverApplicationFolderFromSignature(strApplicationSignature, "")
            If (strInCopyPath <> "") Then
                g_strCreativeSuiteVersion = CREATIVE_SUITE_55
                Return strInCopyPath
            End If
        End If
        strApplicationSignature = strApplicationName + ".Application." + g_strCreativeSuiteVersion
        strDefaultPath = "C:\Program Files\Adobe\Adobe " + strApplicationName + " " + g_strCreativeSuiteVersion + "\" + strApplicationName + ".exe"
        Return DiscoverApplicationFolderFromSignature(strApplicationSignature, strDefaultPath)
    End Function
    Private Function DiscoverApplicationFolderFromSignature(ByRef strApplicationSignature As String, ByRef strDefaultPath As String) As String
        Dim strApplicationPath As String = DiscoverApplicationPathFromCLSID(strApplicationSignature, strDefaultPath)
        If (strApplicationPath = "") Then
            Return ""
        End If
        Dim strDirectory As String = Path.GetDirectoryName(strApplicationPath)
        ' Get rid of the trailing Debug because this depends on whether we install the Debug or Release version first or second.
        ' It will be added on again if we're using a Debug Configuration
        Dim strDebugTag As String = " Debug"
        If strDirectory.EndsWith(" Debug") Then
            strDirectory = strDirectory.Substring(0, strDirectory.Length - strDebugTag.Length)
        End If
        Return strDirectory
    End Function
    Private Function DiscoverApplicationPathFromCLSID(ByRef strApplicationSignature As String, ByRef strDefaultPath As String) As String
        Dim strApplicationPath As String = strDefaultPath
        Try
            Dim strKey As String = strApplicationSignature + "\CLSID"
            Dim regKey As RegistryKey = Registry.ClassesRoot.OpenSubKey(strKey)
            Dim strGUID As String = regKey.GetValue("")
            regKey.Close()
            If IsRegistryVirualized() Then
                strKey = "Wow6432Node\CLSID\" + strGUID + "\LocalServer32"
            Else
                strKey = "CLSID\" + strGUID + "\LocalServer32"
            End If
            regKey = Registry.ClassesRoot.OpenSubKey(strKey)
            strApplicationPath = regKey.GetValue("")
            regKey.Close()
        Catch ex As Exception
            LogMessage("FAILED DiscoverApplicationPathFromCLSID: " + strApplicationSignature)
            strApplicationPath = strDefaultPath
        End Try
        Return strApplicationPath
    End Function

Similar Messages

  • How to find programatically the installation location for Mysql?

    How to find programatically the installation location for Mysql?

    There are thousands of them. Probably hundreds of thousands. If you had a particular one in mind, just ask the person who set it up. There's no point in trying to write code for that, since you only need to ask once and put the location in your code.

  • InDesign CS3 - CS4 compatibility and backwards compatibility

    About to purchase InDesign CS4 for the PC. A colleague in the non-profit association I will be sharing projects with uses CS3 on a Mac.
    Are there any issues with us exchaning InDesign files from CS3 -> CS4 and from CS4 -> CS4?
    Regards
    Ian

    CS3>CS4...usually no problems, you can use InDesign´s native file format indd. You may have some difficulties with fonts if you transfer files from Mac to Win or vice versa. Specially with some older non-open-type fonts. You can´t use same font with both OS, so you must have own versions for Mac and Win. And they will not always match perfectly.
    CS4>CS3 works if you export your file to INX format. You will face some problems if you have used CS4 features that doesn´t exsist in CS3... and of course you may have issues with fonts too but that´s not really because of indesign. You will have same font issues with other softwares too, if you transfer files between Mac and Win.

  • File size comparisons, InDesign CS3, CS4 and CS5?

    Hi, all.
    It seems there was a trend for several major releases where each time Adobe released a new version of InDesign and InCopy, average file sizes grew by 20% or so from the old release to the new release, at least back in the older CS days. Has this trend continued, such that file sizes in CS4 are substantially larger than file sizes from CS3, and CS5 files are substantially larger than those from CS4?
    Adobe, of course, wants to keep writing functionality that will keep the user community coming back to buy in to upgrades. The added functionality sometimes comes at a cost beyond the price tag. If file sizes are larger in a newer version, then page saves over a network or to a database are likely to be slower, and user productivity takes a hit while users are waiting for files to be saved.
    Has anyone done any testing to build the "same" page in multiple versions of InDesign to understand what the effect is on the file sizes? I'm specifically interested in the file sizes between InDesign CS3, CS4 and CS5. To be meaningful, the test page would have to be at least moderately complex, with a couple of photos, multiple text elements and so forth. By "same," the page wouldn't take advantage of new functionality in newer versions but would be saved as a native page of the current version, though the file sizes may be bloated by the new functionality like it or not.
    If you've done any testing along these lines, I'd like to hear more about it.
    Thanks.
       Mark

    The overall structure of ID's files have been exactly the same for -- as far as I can see back -- CS. No change at all, in there.
    There have been significant additions to the 'global' spaces; stuff like InCopy user data, table styles, object styles, and cross references. Each of these add a major chunk of data to each file, whether you use it or not, plus a few bytes per object (again, whether you use them or not -- ID also needs to know where you did not use them, that's why). I think these might be the main source of 'global' file size increase (a single object style in one of my files, for example, eats up a healthy chunk of 11,482 bytes).
    For the rest, all new stuff like 'span columns' is a handful of bytes per paragraph style. Tracking changes may very well double the size of text runs -- but 1 character takes up 1 byte of storage (plus perhaps some overhead of indicating its 'tracking' status). Any single measurement unit always uses 8 bytes at least (for example, the left inset for a column span -- even if it's not used, or set to 0pt).
    I think we're talking about a couple of K's here (oh -- perhaps a max of a hundred or so), in a file format that has been designed around the concept of "disk pages", each 4K big, meaning that sometimes adding one single character to a text box increases the file size by 4 K.
    Your idea of comparing the size of a file created in CS3 against the same saved as CS4 and as CS5 is certainly feasible -- I might try it some time, just to confirm it's purely the extra 'new objects' data that accounts for the size increase and to confirm my guesstimates of the number of Ks involved.

  • Book Adobe InDesign CS3/CS4 SDK Programming by Kris Coppieters

    Hi there, I would like to ask if anybody knows whether Adobe® InDesign® CS3/CS4 SDK Programming Book by Kris Coppieters is available as ebook, since I could find only printed version on Lulu.com. Thanks for your help

    Hi Maciej,
    No, I've never released my book as an ebook. Not sure if it would be worth the effort - it's an awfully small market! I have my book up on Lulu primarily for my own use, as course notes that I use when I run an InDesign SDK training session - so I can quickly print some nice quality handouts for my students.
    Cheers,
    Kris

  • Installing Transparency Flattener Preset for Indesign Server CS4

    I'm trying to figure out how to install a transparency flattener preset for InDesign Server CS4.
    I can see how they are installed for the InDesign app.  Edit -> Transparency Flattener Presets...
    But I'm not sure which directory to install these on for the server.
    I've seen a post that mentions:
    C:\Documents and Settings\<UserName>\Application Data\Adobe\InDesign\Version 6.0\en_US\Transparency Flattener Presets
    /Users/<UserName>/Library/Preferences/Adobe InDesign/Version 6.0/en_US/Transparency Flattener Presets
    for the Desktop version.  But when I place files here even for the CS4 Desktop, they don't seem to show up in the UI.
    Any help would be appreciated,
    Thanks,
    Dennis

    Thanks, to get this working in a server script, I ended up just programmatically creating the flattener preset, rather than worrying about the .flst files.  (Java code below)
      //Setup Transparency Flattener (if not in application)
      FlattenerPreset flattenerPreset = app.getNamedChildFlattenerPreset("Test");
      if (flattenerPreset == null) {
          flattenerPreset = app.addFlattenerPreset();
          flattenerPreset.setName("Test");
          flattenerPreset.setRasterVectorBalance(VariableTypeUtils.createLong(100));
          flattenerPreset.setLineArtAndTextResolution(2400.0);
          flattenerPreset.setGradientAndMeshResolution(400.0);
          flattenerPreset.setConvertAllTextToOutlines(false);
          flattenerPreset.setConvertAllStrokesToOutlines(false);
          flattenerPreset.setClipComplexRegions(false);
      pdfPreset.setAppliedFlattenerPreset(flattenerPreset);

  • No InBooklet SE features for InDesign CS3, is there a 3rd party plug-in ???

    I am searching for a plug-in for Mac that will supply all/most of the capabilities of InDesign's CS2 InBooklet SE for InDesign CS3. Realizing that Print Booklet was not designed to offer the same services as it's CS2 predecessor, I am hoping that a 3rd party will step up to the plate to fill the gap.
    Features such as manually altering the pagination by deleting or inserting blank pages and generating a new InDesign document in printer spreads (rather than just a PDF, as in CS3) are vital to my Design department.
    Any suggestions would be appreciated. Thanks all!

    InBooklet was VERY limited in it's ability to PROPERLY create new files.
    That ability would have gotten even worse had those limitations
    continued into CS3.
    Imposition is the job of the printer, not the designer. And if you are
    the printer there's really no need to be imposing InDesign files.
    Follow Richard's advice and impose PDFs...it's far safer since you don't
    have to worry about shadows moving or number lists getting totally mangled.
    You might want to have a look at Quite Imposing since I wouldn't really
    want to depend on anything owned by Quark.
    Bob

  • I need the upgrade path for Indesign CS3 to operate on Mac OS X Version 10.6.8?

    I need the upgrade path for Indesign CS3 to operate on Mac OS X Version 10.6.8?

    The latest, and only available choice is CS6. You have two choices, subscribe to Creative Cloud or buy a new license.
    There are no upgrades with the exception of a discount for the first year of the full Creative Cloud.

  • I'm reinstalling CS4 Standard, and a window comes up asking for my previous CS3 serial number. Found number, but still won't take that. What is wrong?

    I'm reinstalling CS4 Standard, and a window comes up asking for my previous CS3 serial number. Found number, but still won't take that. What is wrong?

    Contact support by web chat or phone.
    Mylenium

  • Installing cs3 master collection and cs5 production premium on windows 7 machine

    I have a windows 7 ultimate machine that I would like to install CS3 Master Collection on. I would then like to upgrade the Production Premium programs to CS5.
    I have the install discs for both. Any suggestions for how to go about doing this would be greatly appreciated.
    Thanks!

    Tahseen,
    Thanks for the quick reply!
    Both CS3 Master Collection and CS5 Production Premium are full installs, neither is an upgrade. I have serial numbers for both.
    Machine previously had CS4 Production Premium installed on it, that has been uninstalled.
    Should I install CS3 Master Collection then install CS5 Production Premium? If so, do I need to remove the CS3 versions of programs included in Production Premium before installing CS5 Production Premium?
    Thanks again!

  • Indesign CS5 and CS5.5 missed INX

    If cant able to delete the colors from swatchs that time export to inx and open it in text editor and find the color value and just delete it in Indesign CS3.,
    But we missed inx in CS5 and CS5.5, Hope everybudy know that .INX is replaced by IDML,
    If in case we face the above issue how can we solve it,

    If this is just to delete colour swatches that you can't get rid of any other way there's a faster way that might work.
    Make an object that uses the swatch.
    Cut that object to a new InDesign document.
    Save and close that new document.
    Place that new document into the original document.
    Delete it.
    You should be able to now delete the swatch.
    It's taken me longer to type this than it would have to do it!

  • Full Screen in CS5 and CS5.1 is not Supporting the Menus Items like CS4 This is happening while

    Full Screen in CS5 and CS5.1 is not Supporting the Menus Items like CS4
    This is happening while working in the balck screen and using shortkut Keys for top menu. the tools are woring, but while using Alt Key to choosing the menu item. its not supporting. like the older vesions
    please answer me

    Can you please be a little more clear about what you expect it to do vs. what it's doing.
    Are you using the "Full Screen With Menus" mode or the complete "Full Screen" mode?  I just tried the "Full Screen With Menus" mode and was able to use the Alt key to initiate menu operations.
    -Noel

  • Indesign CS5 and CS5.5 crash on new document / Lion 10.7

    Hello!
    In our agency we encountered a problem since upgrading to OS X Lion 10.7. Both our Indesign CS5 and CS5.5 keep crashing on us whetver we open an existing document or create a new one. We tried to clean-up our installations, deleted both, installed just CS5 and/ CS5.5 - trashed preferences etc. pp. Nothing worked.
    Indesign opens like it should - but the moment we create a document it just hangs with the spinning ball - does anyone else can recreate the issue? We use no plugins in indesign only the app "Fontcase" from the Appstore to maintain our collection of fonts.. but we even tried to deactivate this app to see if it helps - no success.
    We currently cant set up the system new since it is time consuming and just our last choice.. is there some other way to find the problem? We also never see the adobe crash-reporter.. not even after 10-15 minutes as stated in the lion os x issue list.
    Thanks!

    Ah, this is easy.
    You have a problem with the SING module, see http://kb2.adobe.com/cps/408/kb408816.html.
    2619 ???  (in Document Actions)  load address 0x12061000 + 0x2e08  [0x12063e08]
    2619 GetPlugIn  (in AppFramework) + 57129  [0x1103f769]
    2619 GetPlugIn  (in AppFramework) + 54943  [0x1103eedf]
    2619 GetPlugIn  (in Font Manager) + 205284  [0x12b17074]
    2619 GetPlugIn  (in Font Manager) + 54889  [0x12af24f9]
    2619 GetPlugIn  (in Font Manager) + 53411  [0x12af1f33]
    2619 GetPlugIn  (in Font Manager) + 54444  [0x12af233c]
    2619 GetPlugIn  (in Font Manager) + 53832  [0x12af20d8]
    2619 GetPlugIn  (in Font Manager) + 46910  [0x12af05ce]
    2619 GetPlugIn  (in Font Manager) + 160199  [0x12b0c057]
    2619 GetPlugIn  (in Font Manager) + 124761  [0x12b035e9]
    2619 GetPlugIn  (in Font Manager) + 430364  [0x12b4dfac]
    2619 ???  (in Font Manager)  load address 0x12abd000 + 0x2000a  [0x12add00a]
    2619 GetPlugIn  (in AppFramework) + 57129  [0x1103f769]
    2619 GetPlugIn  (in AppFramework) + 54943  [0x1103eedf]
    2619 GetPlugIn  (in SING) + 21595  [0x106e933b]
    2619 GetPlugIn  (in SING) + 20802  [0x106e9022]
    2619 GetPlugIn  (in SING) + 52092  [0x106f0a5c]
    2619 SINGDLLStorage_GetGlyphlet  (in SING) + 94  [0x1801977a]
    2619 SINGDLLStorage_GetGlyphlet  (in SINGCore) + 127  [0x180a527b]
    2619 SINGStorage_GetGlyphletWorker(_t_SINGCtx*, char const*, unsigned long, unsigned char**, unsigned long*)  (in SINGCore) + 87  [0x180a4eb9]
    2619 GetDocument(_t_SINGCtx*, unsigned long)  (in SINGCore) + 280  [0x1809a820]
    2619 SINGLIB::ContextImpl::GetRootDocument() const  (in SINGCore) + 269  [0x1805d92b]
    2619 SINGLIB::CatalogOperationContext::CatalogOperationContext(boost::shared_ptr<SINGLIB::Context>)  (in SINGCore) + 155  [0x180820cd]
    2619 SINGLIB::SystemLock::Acquire()  (in SINGCore) + 32  [0x18082b12]
    2619 __sem_wait_nocancel  (in libsystem_kernel.dylib) + 10  [0x9c62bb7a]

  • Retrieve CS5 and CS5.5 installation path from registry

    Hello,
    I have Photoshop CS5 and CS5.5 (5.1) installed on my PC. I want to retrieve installation path for both but in registry i am able to see only CS5.5 (5.1) path. From where i can retrieve CS5 installation path?
    I think registry entry for CS5 is replaced by CS5.1. Is it possible to retrieve CS5 installation path?
    Thanks.

    Hi Carl,
    I had looked at the link you posted earlier too.. I see that you had posetd the answer then too! So, I can post my queries to you directly!
    I created a jsx file named "Result.jsx", which I saved in my D drive, with the following code,
    resultFile = new File("D:/result.log");
    resultFile.open("w");
    resultFile.write(BridgeTalk.__diagnostics__);
    resultFile.close();
    If I run this directly from ESTK, there is no problem, and I get the result.log file. I tried to execute this script via command line as shown in the screenshot,
    On executing the above, I got the following error,
    What am I doing wrong? I need to do this urgently. Please suggest a solution..
    Thanks!

  • My Windows 7 Professional desktop system hard disk got corrupted and I took the opportunity to install an SSD for a new system disk and reinstall Windows.  The system is up and running on the SSD, with my old system disk now used for storage as it is stil

    My Windows 7 Professional desktop system hard disk got corrupted and I took the opportunity to install an SSD for a new system disk and reinstall Windows.  The system is up and running on the SSD, with my old system disk now used for storage as it is still readable.  The only Adobe product I have reinstalled so far is Reader XI but I would like to reinstall Elements 8 and Acrobat 9 without taking up more licences as both are also installed on my laptop.  Can you point me to the best way to do this?  - Thanks

    If you have the two allotted activations already and one was lost on the hard drive that failed then you need to contact Adobe Support thru chat and ask them to reset your activations.
    For the link below click the Still Need Help? option in the blue area at the bottom and choose the chat option...
    Serial number and activation chat support (non-CC)
    http://helpx.adobe.com/x-productkb/global/service1.html ( http://adobe.ly/1aYjbSC )

Maybe you are looking for

  • What's YOUR Idea of an "Ideally Organized HD?

    What's YOUR Idea of an "Ideally Organized HD?" I've been giving this a lot of thought lately. Whereas it is obvious that OSX organizes your hard drive better than anything on Windoze, especially when you consider the power derived from using Spotligh

  • Oracle 9i to 10g for Developers

    Hi, Can anyone point out what are the key features of Oracle 10g which were not available in 9i or were modified from 9i. I am looking from PLSQL Developer's perspective. I have found a few here: 1. Introduction of FLASHBACK VERSION QUERY 2. Change i

  • Delete key won't work

    I'm running iTunes ver. 7.1 (59) and I can no longer delete a song from my library using the "delete" key. However, the "delete" key works to delete a playlist. Any advice?

  • Request had transfer data but there are not in the Cube

    Good morning experts; I’m using the BI 7009 version (Business Content 7003). I just activate the BC from the 0CO_OM_OPA_1 datasource to the 0OPA_C11 infocube. I also had created a infopackage to upload data from R/3. The problem is that, in the InfoC

  • Classic 9 to OS X PROBLEM

    I just got this imac, the one with the flat panel lcd on the articulating arm. If you know what it's called, let me know. Anyway, I installed os x 10.3.9 on a erased disc. It works fine but now I want to run OS9 apps so I tried to install OS9 by boot