2010-10-15 22 views
1

Je souhaite exécuter une URL au format
mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/[email protected]($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가, que j'ai obtenu à partir de la recherche via Windows Desktop Search.Ouvrir les mails dans Outlook à partir de C# en utilisant le protocole "mapi: //"

Sous Vista avec Outlook 2007, cela ne permet pas d'ouvrir les emails si Outlook est déjà ouvert. Sauf parfois, quand ça marche pour des raisons mystérieuses.


Voici quelques choses que j'ai essayé dans une tentative pour obtenir ce travail:

exécution avec Process.Start il, ou l'exécuter avec Process.Start via cmd.exe/c commencer. Le premier a gelé pendant une minute, puis n'a rien fait, avec Process.Start retournant null (sauf lorsque Outlook n'était pas déjà ouvert, quand cela a fonctionné). Ce dernier a surgi une boîte de message "Erreur non spécifiée".

Open mails in outlook from java using the protocol "mapi://"
Je n'arrivais pas à comprendre comment faire fonctionner ce script. Les scripts vbs que j'ai générés prétendaient avoir trouvé des caractères invalides. De plus, cette solution me rend triste.

http://social.msdn.microsoft.com/forums/en-US/windowsdesktopsearchdevelopment/thread/00491710-e245-452f-8b0a-56caa56277e4/ Je suspecte que cette solution fonctionnera. Cependant, je ne pouvais pas le faire fonctionner en C++ ou C# en raison d'erreurs de compilation. C'est une question de ne pas être sûr que les bibliothèques à inclure ou en C# comment utiliser efficacement ShellItem2 etc avec interop. J'ai essayé de créer un raccourci et d'appeler le Process.Start à ce sujet. Cela n'a pas fonctionné, bien que le raccourci lui-même a fonctionné quand j'ai double-cliqué dessus.

Répondre

0

Il s'avère que le problème était un problème UAC. J'ai tendance à utiliser VS en tant qu'administrateur, car certaines applications en ont besoin.