App-V 5 brought a lot more options for integrating virtual applications with the local operating system. This is a big win for those organizations wanting to move as many of their applications as possible over to the APPV package format. These Extension Points can be defined within the App-V package manifest (if detected during sequencing) or applied through dynamic configuration. Extension points such as Shortcuts and FTAs (file type associations) as well as advanced ones such as COM and Environment Variables are well known and are not exactly new to App-V. What I wanted to do was dive into some of the lesser known extension points. Particularly some of those that are new to App-V 5.
Dec 16, 2017 - Fix for Brother ControlCenter4 'No default email application' scan to. One of my customers is still using Windows Live Mail as their default. Run regedit and open this key: HKEY_LOCAL_MACHINE SOFTWARE Clients Mail.
Software Clients
Software Clients, often referred to as SPAD clients (for “Set Program Access and Defaults) are documented well in the following MSDN article:
“How to Register an Internet Browser or Email Client with the Windows Start Menu”
The way they work is to basically register as a software client within the registry under HKEY_LOCAL_MACHINESoftwareClients
Then the application can show up as an option under the Set Program Access and Computer Defaults in the Control Panel:
Default web browsers, media players, email clients, instant messaging, and other applications can have defaults configured here. This will subsequently help to control other defaults for shell actions such the Right-Click --à Send To à Mail Recipient action.
App-V virtual applications can be used through the Software Client Extension Point to have the following applications configured through the SPAD option in the Windows Control Panel:
- Email
- IM (Instant Messaging)
- Media Players
- Java VM
To clarify - only the above clients are currently supported.
A Software Client registration is defined within the manifest and can be adjusted via dynamic configuration as well. An example below shows the MAPI client extension being registered for Outlook 2013 as a Software Client:
<SoftwareClients Enabled='true'>
<ClientConfiguration EmailEnabled='true' />
<Extensions>
<Extension Category='AppV.SoftwareClient'>
<SoftwareClients>
<Email MakeDefault=”true”>
<Name>Microsoft Outlook</Name>
<Description>Microsoft Outlook</Description>
<InstallationInformation>
<RegistrationCommands>
<Reinstall>[{AppVPackageRoot}]Office15OUTLOOK.EXE /spadreinstall</Reinstall>
<HideIcons>[{AppVPackageRoot}]Office15OUTLOOK.EXE /spadhideicons</HideIcons>
<ShowIcons>[{AppVPackageRoot}]Office15OUTLOOK.EXE /spadshowicons</ShowIcons>
</RegistrationCommands>
<IconsVisible>1</IconsVisible>
<OEMSettings />
</InstallationInformation>
<ShellCommands>
<ApplicationId>[{AppVPackageRoot}]office15OUTLOOK.EXE</ApplicationId>
<Open>'[{AppVPackageRoot}]Office15OUTLOOK.EXE' /recycle</Open>
</ShellCommands>
<MAPILibrary>mapi32.dll</MAPILibrary>
<ExtendedMAPILibrary>[{AppVPackageRoot}]Office15OLMAPI32.DLL</ExtendedMAPILibrary>
<MailToProtocol>
<Description>URL:MailTo Protocol</Description>
<EditFlags>2</EditFlags>
<DefaultIcon>[{AppVPackageRoot}]Office15OUTLOOK.EXE,-9403</DefaultIcon>
<ShellCommands>
<ApplicationId>[{AppVPackageRoot}]office15OUTLOOK.EXE</ApplicationId>
<Open>'[{AppVPackageRoot}]Office15OUTLOOK.EXE' -c IPM.Note /mailto '%1'</Open>
</ShellCommands>
</MailToProtocol>
</EMail>
</SoftwareClients>
</Extension>
</Extensions>
</SoftwareClients>
In the example XML above for Outlook, we have four elements that are essential to understanding how this fits into integration as a software client:
<SoftwareClients Enabled='true'>
This element turns on the extension subsystem.
<ClientConfiguration EmailEnabled='true' />
This element turns on integration of the Email clients.
<EMail MakeDefault='true'>
This element does two things - tells the application it is an email software client and makes it the default selected Software Client. Yes, both the E and the M are capitalized. That is not a typo.
<MAPILibrary>mapi32.dll</MAPILibrary>
This element shows the DLL that will be registered.
In the example in the picture below, Trillian is registered through dynamic configuration as an Instant Messaging Software Client. Notice it is not enabled as default.
Application Capabilities
Do not confuse Software Clients (which are set under SPAD) with Application Capabilities which are set under Default Programs in the Control Panel. With this extension point, applications provide their capabilities to the operating system. The capabilities and mappings are aggregated in the HKLMRegisteredApplications key.
Users can then use these capabilities to set the default programs through the Default Programs interface:
For more information on how this is handled internally, check out the background on MSDN:
One final note on Application Capabilities: Even though these settings are per user as of the release of Windows 8, App-V 5 only supports this extension point for globally published virtual applications.
URL Protocol Handlers
![Mail Mail](http://htse.kapilarya.com/FIX-There-Is-No-Email-Program-Associated-To-Perform-The-Requested-Action-Windows-10-1.png)
The URL Protocol Handler associates a virtual application with a URI protocol. This has always been possible with App-V but the extension point integrations ensures that it gets configured at deployment through the extension point. Rather than associating an application with a specific document type like an FTA, the application is associated with the protocol itself.
The URL Protocol subsystem is based off standards defined for URI registration which is documented here:
If the package is user targeted, the URL protocol handler registration will occur under HKCUSoftwareClasses. If the package is machine targeted or globally published, URL protocol handlers will be registered under HKLMSoftwareClasses.
An example of URL Protocol extension point registration is below:
<URLProtocols Enabled='true'>
<Extensions>
<Extension Category='AppV.URLProtocol'>
<URLProtocol>
<Name>FirefoxURL</Name>
<ApplicationURLProtocol>
<Description>Firefox URL</Description>
<DefaultIcon>[{ProgramFilesX86}]Mozilla Firefoxfirefox.exe,1</DefaultIcon>
<FriendlyTypeName>Firefox URL</FriendlyTypeName>
<EditFlags>2</EditFlags>
<ShellCommands>
<DefaultCommand>open</DefaultCommand>
<ShellCommand>
<ApplicationId>[{ProgramFilesX86}]Mozilla Firefoxfirefox.exe</ApplicationId>
<Name>open</Name>
<CommandLine>'[{ProgramFilesX86}]Mozilla Firefoxfirefox.exe' -requestPending -osint -url '%1'</CommandLine>
<DdeExec>
<NoActivateHandler>true</NoActivateHandler>
<Application>Firefox</Application>
<Topic>WWW_OpenURL</Topic>
<DdeCommand>'%1',0,0,</DdeCommand>
</DdeExec>
</ShellCommand>
</ShellCommands>
</ApplicationURLProtocol>
</URLProtocol>
</Extension>
</Extensions>
</URLProtocols>
Topics Map > OS and Desktop Applications > Operating Systems > Windows
The default mail program is the software that is registered with your operating system as the software that is to handle mailto URL's. When another application wants to send an email, it looks up the default and passes the email to the default mail program.
Windows 10
Use the following steps to change the default mail program in Windows 10
- In the search bar or search icon on the bottom left of the desktop, begin typing Default App Settings. Once You see the Default App Settings option, click it.
- Click the Mail option, then select the program you wish to make default.
Windows 7, 8, & Vista
Use the following steps to change the default mail program in Windows 8, 7 or Vista:
- Click the Start button, then click the Default Programs item.
- Windows 8 users type Default Programs into the Start screen and hit Enter.
- Click on the Set Program Access and Computer Defaults item.
- In the Access and Defaults window, click on the Custom radio button to expand the Custom category.
- Underneath Choose a default e-mail program, click the radio button next to the program you want to use (e.g. Outlook, Thunderbird, Eudora).
- Click OK at the bottom of the window.
Windows XP
Use the following steps to change the default mail program in XP:
- Click the Start button, then click on the Control Panel icon to open the Windows Control Panel.
- Click the Add or Remove Programs icon to open the Add or Remove Programs applet.
- On the left side of the Window click the Set Program Access and Defaults icon.
- In the Access and Defaults window, click on the Custom radio button to expand the Custom category.
- Underneath Choose a default e-mail program, click the radio button next to the program you want to use (e.g. Outlook, Thunderbird, Eudora).
- Click OK at the bottom of the window.