Application Association Registration plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
No edit summary
Line 17: Line 17:


==== app_name ====
==== app_name ====
The value for app_name is the name for the application under:
The value for app_name is the name associated with the application under:
   HKLM\Software\RegisteredApplications\
   HKLM\Software\RegisteredApplications\


Line 46: Line 46:
  Pop $Var
  Pop $Var


Determines the default application for a given association type. This is the default application launched by ShellExecute for that type.
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:
Returns:
Line 56: Line 56:
  Pop $Var
  Pop $Var


Determines whether an application owns the registered default assocation for a given application level and type.
Returns whether an application is the default assocation for the specified association name, level and type.


Returns:
Returns:
Line 67: Line 67:
  Pop $Var
  Pop $Var


Determines whether an application owns all of the registered default associations for a given application level.
Returns whether an application is the default for all of its associations for the specified level.


Returns:
Returns:
Line 78: Line 78:
  Pop $Var
  Pop $Var


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


Returns:
Returns:
Line 88: Line 88:
  Pop $Var
  Pop $Var


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


Returns:
Returns:
Line 98: Line 98:
  Pop $Var
  Pop $Var


Removes all per-user associations for the current user. This results in a reversion to machine defaults, if they exist.
Removes all user associations for the current user (e.g. reverts to machine level associations).


Returns:
Returns:

Revision as of 13:39, 30 September 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 (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, level and type.

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)