2008-10-10 6 views
1

Lorsque dans Outlook 2003, ouvrez le carnet d'adresses, sélectionnez Outils-> Options. Vous obtenez la boîte de dialogue d'adresse indiquant l'option « Lors de l'envoi de courrier, vérifier les noms en utilisant ces listes d'adresses dans l'ordre suivant: »Comment mettre à jour par programme l'ordre de résolution du nom de contact Outlook

Address dialog

Pour la plupart des gens, ce ne contiendra que « Contacts ». Pour les réseaux d'entreprise, il contiendra probablement aussi "Global Address List". Le problème est que dans ma compagnie la GAL est de plusieurs dizaines de milliers de personnes, et il est courant que des conflits surviennent dans la résolution de noms quand on tente d'envoyer des emails et que ça va à la mauvaise personne dans un autre pays. Au lieu de cela, je voudrais placer une liste d'adresses Exchange distincte "X" en haut de cette liste, d'abord résoudre les noms dans notre propre société avant de vérifier la liste d'adresses globale. Ensuite, résolvez contre "Contacts", puis GAL. Cette configuration devrait être déployée sur plusieurs centaines de PC.

J'ai été en mesure de le faire sur mon propre PC en piratant la clé de registre: HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\your_profile_name\9207f3e0a3b11019908b08002b2a56c2, Valeur 11023d05.

Ceci contient une structure de données REG_BINARY qui répertorie les ID des éléments de cette liste. Je peux les réorganiser à mon goût et Outlook l'accepte.

Les ID de la liste d'adresses GAL et "X" sont statiques. Cependant, le problème est que l'ID "Contacts" n'est apparemment pas statique, peut-être unique à l'utilisateur et/ou à l'ordinateur. Sa valeur semble être indétectable dans le registre. Cela m'empêche de simplement copier cette valeur de registre sur tous les PC.

Est-ce que quelqu'un a été en mesure de réorganiser la liste de résolution des noms de contacts de manière progammatique?

Répondre

3

Je l'ai fait pour une entreprise dans le passé. C'était une application .NET, qui fonctionnait sur tous les PC et réorganisait cette liste.

C'est là que vous devez commencer:

http://msdn.microsoft.com/en-us/library/bb820991.aspx

+0

Merci. En utilisant cet exemple, j'ai été capable de construire un projet C++ natif pour faire le travail. – spoulson

0

Sur le plan MAPI étendu, vous pouvez utiliser IAddrBook.SetSearchPath (C++ ou Delphi uniquement)

Si vous utilisez Redemption est une option (qui prend en charge à peu près toutes les langues, y compris toutes les langues .Net), vous pouvez utiliser RDOSession.AddressBook.SearchPath pour accéder ou manipuler l'ordre du chemin de recherche du carnet d'adresses - voir http://www.dimastr.com/redemption/RDOAddressBookSearchPath.htm

Questions connexes