Application Association Registration plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
Line 3: Line 3:
This plugin can read / set application association registration for Windows Vista and greater.
This plugin can read / set application association registration for Windows Vista and greater.


Version: 0.4
Version: 0.4 (2008-12-10)
* Added Unicode support (initial patch by Ehsan Akhgari).
* Added Unicode support (initial patch by Ehsan Akhgari).
* Download includes both the ANSI and Unicode versions of the plug-in.
* Download includes both the ANSI and Unicode versions of the plug-in.


Version: 0.3 addendum
Version: 0.3 addendum (2008-12-09)
* Added Unicode download.
* Added Unicode download.


Version: 0.3
Version: 0.3 (2007-10-30)
* Renamed plugin from SetVistaDefaultApp to AppAssocReg.
* Renamed plugin from SetVistaDefaultApp to AppAssocReg.
* Added all IApplicationAssociationRegistration methods available.
* Added all IApplicationAssociationRegistration methods available.

Revision as of 10:16, 10 December 2008

AppAssocReg Plugin for NSIS (2008-12-10)

This plugin can read / set application association registration for Windows Vista and greater.

Version: 0.4 (2008-12-10)

  • Added Unicode support (initial patch by Ehsan Akhgari).
  • Download includes both the ANSI and Unicode versions of the plug-in.

Version: 0.3 addendum (2008-12-09)

  • Added Unicode download.

Version: 0.3 (2007-10-30)

  • Renamed plugin from SetVistaDefaultApp to AppAssocReg.
  • Added all IApplicationAssociationRegistration methods available.

Version: 0.2 (2007-09-28)

  • minor cleanup

Version: 0.1 (2007-09-28)

  • initial release

Details On Function Parameters

app_name

The value for app_name is the name associated with the application under:

 HKLM\Software\RegisteredApplications\

assoc_name

The value for assoc_name can be one of the following:

  • For type equals protocol it should be the protocol name (e.g. http, mms, etc.).
  • For type equals file it should be the file extension (e.g. .html, .txt, etc.)
  • For type equals startmenu it should be the registry subkey name StartMenuInternet, mail, etc.) under:
 HKLM\Software\clients\
  • For type equals mime it should be the MIME type name (e.g. audio/mp3, text/html, etc.)

type

Possible values for type map to ASSOCIATIONTYPE as follows

  • file = AT_FILEEXTENSION
  • protocol = AT_URLPROTOCOL
  • startMenu = AT_STARTMENUCLIENT
  • mime = AT_MIMETYPE

level

Possible values for level map to ASSOCIATIONLEVEL as follows

  • machine = AL_MACHINE
  • effective = AL_EFFECTIVE
  • user = AL_USER

Functions

AppAssocReg::QueryCurrentDefault assoc_name type level
Pop $Var

Returns the default application for the specified association type and level (e.g. the application that is launched by default when using ShellExecute for the association).

Returns:

  • 'ProgID' that identifies the current default association.
  • 'method failed' if the call failed.
  • 'method not available' if IApplicationAssociationRegistration is not available on the system.
AppAssocReg::QueryAppIsDefault app_name assoc_name type level
Pop $Var

Returns whether an application is the default assocation for the specified association name, type, and level.

Returns:

  • '1' if the application is the default.
  • '0' if the application is NOT the default.
  • 'method failed' if the call failed.
  • 'method not available' if IApplicationAssociationRegistration is not available on the system.
AppAssocReg::QueryAppIsDefaultAll app_name level
Pop $Var

Returns whether an application is the default for all of its associations for the specified level.

Returns:

  • '1' if the application is the default.
  • '0' if the application is NOT the default.
  • 'method failed' if the call failed.
  • 'method not available' if IApplicationAssociationRegistration is not available on the system.
AppAssocReg::SetAppAsDefault app_name assoc_name type
Pop $Var

Sets an application as the default for the specified association name and type.

Returns:

  • 'success' if the call was successful.
  • 'method failed' if the call failed.
  • 'method not available' if IApplicationAssociationRegistration is not available on the system.
AppAssocReg::SetAppAsDefaultAll app_name
Pop $Var

Sets an application as the default for all of the associations it is registered for.

Returns:

  • 'success' if the call was successful.
  • 'method failed' if the call failed.
  • 'method not available' if IApplicationAssociationRegistration is not available on the system.
AppAssocReg::ClearUserAssociations
Pop $Var

Removes all user associations for the current user (e.g. reverts to machine level associations).

Returns:

  • 'success' if the call was successful.
  • 'method failed' if the call failed.
  • 'method not available' if IApplicationAssociationRegistration is not available on the system.

Example

See Examples\AppAssocReg\Example.nsi

Links

Download

  • Current Release: 2008-12-10

AppAssocReg-0.4.zip (12 KB) (dll is approximately 5 KB)