How to programmatically set registry setting to prevent Outlook from removing the VSTO Addin - outlook

Hi is there a way to programatically set the following registry key:
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Resiliency\DoNotDisableAddinList\
with DWORD= 1
As I learned from this posting (among many others) this prevents Outlook from removing my Addin from Outlook for being slow. Yes, it would be better to design the AddIn for being faster. But as it needs to connect service on the internet this will be hard to achieve. BTW: I have this problem also with many other Addins.

You need to use .Net base class libraries to get the job done, the RegistryKey class represents a key-level node in the Windows registry. See How to: Create a Key In the Registry (Visual C#) for more information.
Read more about possible windows registry keys and their values in the Add-ins are user re-enabled after being disabled by Office programs article.

Related

Update logged in user's signature in Outlook, Office 365 add in through a external rest service?

I have been asked to develop a add in to update user signatures from a external service, that service will be providing the data for the signature and I need to update the signature in outlook with html and data.
Is this possible with some kind of script or any api available in outlook addin to update signatures?
while searching I came across this it seems there is no api for it at the moment, is it possible with some sort of script?
All Outlook profiles in a Windows user account use the same path for the signature files. If the signatures are in the Signatures folder, they are available to all profiles set up in that Windows user account. See Multiple Profiles and Separate Signature Files for more information.
The default folder where Outlook email signature files are located is:
Windows XP:
C:\Documents and Settings\%username%\Application Data\Microsoft\Signatures
Windows 10 / 8 / 7 / Vista:
C:\Users\%username%\AppData\Roaming\Microsoft\Signatures
Also, you may find the How to Find the Outlook 2013 Signature Location article helpful.
Currently, updating existing signatures in registry from within an Outlook add-in is not supported.
We track Outlook add-in feature requests on our user-voice page. Please add your request there. Feature requests on user-voice are considered, when we go through our planning process.

How to Detect if Office 365 web addin is installed or not?

We have a desktop app with which we want to integrate Office 365 calendar. We will have our users provide their consent by authorising the app in office 365. I wonder if I can use any specific permission and/or api that would help us know if our office 365 office.js addin is installed by that user. This works great with VSTO addin as we can get the info from system registry, however, as Office 365 addin is installed on cloud no such registry can be found and we won’t be able to know.
Exchange will create a subfolder for each installed web addin in a special folder named WebExtAddins. The folder is on the same level as the other special folders (e.g. the Inbox), but is hidden. You can see that folder (and its subfolders) in OutlookSpy (I am its author) - click IMsgStore button on the OutlookSpy ribbon, click "Open Folder", double click on the folder named WebExtAddins.
UPDATE April 2022 - it looks like Outlook no longer uses the WebExtAddins folder. Instead, the list of web addins is stored in a hidden (associated) message with the message class of "IPM.Configuration.ExtensionMasterTable" in the Inbox folder. The list is stored in the PR_ROAMING_XMLSTREAM binary property. The format of the property is not documented.
In EWS, the list of installed addins can be retrieved using the GetAppManifests operation. If you are using Outlook Object Model or Extended MAPI, your only option is parsing that blob.
For this particular case (figure out if a web addin is installed), the addin custom storage will be in a hidden (associated) message in Inbox folder with the message class of "IPM.Configuration.ClientExtension.<guid>", where <guid> is your addin's GUID. You should be able to asccess that hidden message using MAPIFolder.GetStorage("IPM.Configuration.ClientExtension.<guid>", olIdentifyByMessageClass) (where MAPIFolder is retrieved from Namespace.GetDefaultFolder(olFolderInbox))
It seems that there is no good way to check directly now. Just like you said,Office 365 add-in is installed on Cloud. Since it runs through a separate browser process (Like IE). After plug-ins are loaded, we typically see two IE processes in the process manager. Here's a detail. If your Office is 32-bit, then its core process will be a 32-bit one. You can see that if you load multiple plug-ins, the memory it uses will gradually increase. However, it is still a process.
Screenshot:
Also, if your Windows is 64-bit, it will create another 64-bit IE process which is actually a call relationship. As you can see from the diagram below, the 32-bit process is actually calling the 64-bit process.

Inactive outlook add in becoming active in Outlook 2010

We have an outlook add in with load behaviour defaulted as 9.
Initial loading of the add in is working. Now the user can go and make the add in inactive. In this case the load behaviour rightly becomes 8. In the current session of the outlook it remains so.
But once inactive and user starts outlook again, the add in becomes active and is loaded again. So the load behaviour becomes 9 again.
This problem is only observed in Outlook 2010 professional version. In outlook 2013 it is working fine.
Is there any way i can found out why it is happening or does anyone have any hints ?
cheers,
Saurav
When users try to disable add-ins (registered in the HKLM hive) in Office applications they get the LoadBehavior key created in the HKCU hive. Try to change LoadBehavior key value in the HKLM hive of windows registry instead and see the result.

Not Showing Outlook Addin

I have created outlook addin for Outlook 2013 64 bit.
In that Addin, i have created Form region with custom controls.
Then with the reference of http://blogs.msdn.com/b/emeamsgdev/archive/2013/11/21/outlook-deploying-an-outlook-2013-add-in-using-installshield-le.aspx i created setup file for Addin.
Now i installed it in my computer and everything works fine.
However when i try to install it on client computer, it doesn't show addin in outlook.
and i am not able to find any reason.?
I have also created registry for my addins
If it simply doesn't load, without errors, it only means one thing, outlook is unaware of your addin, cause even when addins are not working, outlook gives you an error or turns the LoadBehaviour regkey to '2'.
On your client, you should check that the registry values are set properly.
**HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins\Outlook_PROJECT_ADDIN
If your addin doesn't work, check to see if those values exist, and if they do, what happens when outlook loads ? does LoadBehavior turns to '2' instead of 3 ?
If so, and it works perfectly on your pc, it probably means you have issues with the Manifest regkey, make sure the manifest points to a valid local location followed by a |vstolocal
so its syntax should be something like:
file:///C:/Outlook_Proj.vsto|vstolocal
Also make sure you have .Net Framework v4.0 installed on your target PC.
If you're trying to install it to a network drive, make sure you remove the '|vstolocal| thingy, and add the network drive to the trusted zone in Internet Explorer Settings.
Hope the following steps will help you solve this problem if you are still facing it.
Run the deployed setup with administration rights.
If it is not shown under Add-ins, open the setup folder and double click on the .vsto file then select install.
If you can see the addin among the others, and is not functioning it means it is disabled. To enable the add-in(since you are using outlook 2013), go to File -> Slow and Disabled Add-ins, and you shold see your add-in on the pop-upped window. Enable it.
Create the VSTO_SUPRESSDISPLAYALERTS = 0 enviorment variable to get any VSTO alerts. Take a look in the Windows event viewer and off course be sure of being installed the pre requisistes like Office Primary assembles and VSTO for office. Another think, check if your adding was not crashed once and move to inactive add-in list. Search registry for Resiliency key.

outlook addin goes straight to inactive application addins

My Outlook addin MSI installs the addin (It is listed in Add\Remove programs) but sends it straight to inactive application addins.
How can I fix this?
Check the LoadBehavior key value for your plugin.
HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins\%your add in%\LoadBehavior
If you see the registry hive for you add-in - it's most likely to be installed correctly.
The LoadBehavior value should be 3 before you start Outlook. If it's not, set it to 3.
If it goes to 2 when you start Outlook - it is definitely trying to run it, so it's good news in a way.
You will need to do some diagnostics there - try instantiating your add-in from vbs
set c = CreateObject("EnthusiasticDeveloper.OutlookAddIn")
This should give you no errors.
If it doesn't and the object is instantiated - you need to put diagnostics in your add-in.
It is being called by Outlook and your most likely to get enough control to instantiate log4net.
HTH
It seems the MS Outlook started evaluating the add-ins that directly affect product overall performance and set them as inactive. I found this article that indicates the windows registry entry for DisabledItems (HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Resiliency\DisabledItems). It is much likely to your add-in be listed on this folder. Backup the related entry before removing it.
See detailed information on this accessing:
http://www.outlook-apps.com/inactive-outlook-add-ins/
Cheers,
Vieira
This probably happens because the load behavior is not set correctly. This article can help you: http://msdn.microsoft.com/en-us/vsto/ff937654.aspx#Create

Resources