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...
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)
Please log in to answer
Posted by:
anonymous_9363
16 years ago
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.
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
Posted by:
rayz_0020
16 years ago
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..
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
ORIGINAL: rayz_0020That depends entirely on the application and/or on how it was installed.
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..
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
Posted by:
rayz_0020
16 years ago
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)...
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
ORIGINAL: rayz_0020Near this line, there will be an entry for one or more Custom Actions. One of them is most likely responsible.
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:
rayz_0020
16 years ago
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...
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.
so that the conversation will remain readable.