/build/static/layout/Breadcrumb_cap_w.png

Association of File Extension & Application

Hi All,
I am packaging Project Viewer(in brief, an application to open .mpp files) and my package must satisfy the following conditions:
1. If the target computer already has MS Project (another application for same purpose) installed, even after installation of my package, MS Project must still remain the default application for opening the .mpp files.
2. If not, my pack(Seavus PV) must be made the defualt.
Any ideas as how to achieve this..
Thanks in advance...

0 Comments   [ + ] Show comments

Answers (8)

Posted by: anonymous_9363 16 years ago
Red Belt
0
Use your authoring tool's help file, this site and MSDN to research AppSearch, LaunchCondition and Conditions.

Some advice re: the first two: if you're using a Wise package authoring tool, it defaults to placing the LaunchCondition action before the AppSearch action, meaning that any property you set via AppSearch isn't actioned. One of the first things to do in a new Wise set-up is to create a new set of templ;ates with the AppSearch action moved to an earlier position in the installation sequence. Quite why Wise persists with this folly escapes me.
Posted by: sushma.shah 16 years ago
Senior Yellow Belt
0
Hello,

you can do so by changing the target file path in the registries supported with .mpp extension.
Posted by: rayz_0020 16 years ago
Senior Purple Belt
0
Is there any chance to find that a specific application is being installed on the target machine ??
If there is a possibility for that, i guess i can write a custom action wherein i can make a condition to set the MAKEDEFAULTAPPLICATION property to NO if MS Project is alredy installed in the machine.. So can anybody help me out in finding out a registry or somethin else to search for, to find out the existance of an application in the target machine, before i start my installation..
Posted by: anonymous_9363 16 years ago
Red Belt
0
ORIGINAL: rayz_0020
So can anybody help me out in finding out a registry or somethin else to search for, to find out the existance of an application in the target machine, before i start my installation..
That depends entirely on the application and/or on how it was installed.

You could look for the main EXE; you could look for a guaranteed-to-be-present registry entry or you could look for the 'UninstallString' or 'ProductCode' registry key/entry if it was installed by Windows Installer.

Looking for EXEs is tricky, because not everyone installs to the default location (I, for one, detest Microsoft's habit of ignoring its own guidelines and using 'Microsoft [Product Name] - or sometimes just [Product Name]! - and instead use 'Microsoft\[Product Name]'...)

Thus, you can refine that by looking for the default file association and then follow the trail to the EXE. This is how, for example, any script I use which needs to know where MS Office is installed: I get the AppID associated with the .DOC extension - on the basis that *everyone* installs Word - then retreive the shell 'Open' command for that extension's associated AppID (Word.Document.x, where 'x' is the Office version number) e.g. HKEY_CLASSES_ROOT\Word.Document.8\shell\Edit\command\(Default), which in my current build is set to "C:\Program Files\Microsoft\Office\OFFICE11\WINWORD.EXE" /n /dde. Thus, from character position 1 (or 0 for the anally-retentive) to the last backslash is the path to MS Office. Easy.

I hope it's obvious that you'll need to do this in script. You could *probably* assume a lot of things and just retrieve a reg key (e.g. Office 11 has a registry value 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot\Path') but a) that assumes a particular version of Office and b) may not always be present. Besides, properly written, your script could be made generic enough to seek out any application's installed path.
Posted by: jmcfadyen 16 years ago
5th Degree Black Belt
0
You could use the upgrade table to search for the app and set it to flag presence only then use that property as your condition.
Posted by: rayz_0020 16 years ago
Senior Purple Belt
0
I changed the property MAKEDEFAULTAPPLICATION to "No" on presence of MS Project by using a vb script-custom action. I can also see the property getting modified( in the log file ). but exactly at the very end of installation just before Installation ends, the property is again applied as "yes", ie., this becomes the default overriding the MS project(which shud not happen)...
in the log file i can see...
1. the property in modified (current value is Yes ; new value is No)
2. Property(s) MAKEDEFAULTAPPLICATION = no
3. Property(c) MAKEDEFAULTAPPLICATION = yes..
Any ideas for Wat is that happening at (3)...
Posted by: anonymous_9363 16 years ago
Red Belt
0
ORIGINAL: rayz_0020
in the log file i can see...
1. the property in modified (current value is Yes ; new value is No)
2. Property(s) MAKEDEFAULTAPPLICATION = no
3. Property(c) MAKEDEFAULTAPPLICATION = yes..
Any ideas for Wat is that happening at (3)...
Near this line, there will be an entry for one or more Custom Actions. One of them is most likely responsible.
Posted by: rayz_0020 16 years ago
Senior Purple Belt
0
Hi... thanks for the replies Ian.. I just found that the problem is with the application of condition to the components.. I have two keys in HKCR.. and these keys are actually in component which has a condition which goes like this... MAKEDEFAULTPROPERTY="Yes".. Now even if the property is passed as "No"(i tried passing it explicitly thru command line also), this component is getting installed..
Can you help me in knowing why this occurs... Bcoz if this component is not getting installed based on the condition (if passed as No), the issue wud get resolved..
thanks in advance...
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ