Application Association Registration plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
Line 45: Line 45:
  Pop $Var
  Pop $Var


Returns the default application for the specified association type (e.g. the application that is launched by default when using ShellExecute for the association).
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:
Returns:
Line 55: Line 55:
  Pop $Var
  Pop $Var


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


Returns:
Returns:

Revision as of 06:21, 1 October 2007

AppAssocReg Plugin for NSIS (2007-09-30)

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

Version: 0.3

  • 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: 2007-09-30

AppAssocReg.zip (10 KB) (dll is 5 KB)