Как получить событие щелчка мыши на панели «Входящие», когда пользователь выбирает электронную почту - PullRequest
5 голосов
/ 14 марта 2011

Я создаю надстройку для Office 2007, используя C #. Этот плагин отвечает за отображение информации заголовка электронной почты на новой панели всякий раз, когда пользователь нажимает на электронную почту из списка электронной почты на панели «Входящие». Теперь я не уверен, как получить событие щелчка мышью на панели «Входящие», когда пользователь выбрал электронное письмо и прочитал информацию заголовка этого электронного письма. Любой полезный указатель?

Ответы [ 2 ]

0 голосов
/ 11 января 2013
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {

       this.Application.Inspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);          
    }
 void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
        {
            try
            {
                Outlook.MailItem tmpMailItem = (Outlook.MailItem)Inspector.CurrentItem;
                if (tmpMailItem != null)
                {
                    if (Inspector.CurrentItem is Outlook.MailItem)
                    {
                        tmpMailItem = (Outlook.MailItem)Inspector.CurrentItem;
                        string to=   tmpMailItem.To;
                        string body = tmpMailItem.Body;
                    }
                }
             }
            catch
            {

            }
        }
0 голосов
/ 13 апреля 2012

Вы можете использовать библиотеку объектов Microsoft V11.0 outlook (добавить ссылку), а затем запросить почтовый ящик MAPI:

http://geekswithblogs.net/TimH/archive/2006/05/26/79720.aspx или же http://support.microsoft.com/kb/310258

Некоторые требования для доступа к почтовым ящикам обмена с MAPI или POP3: C # MAPI для чтения входящих сообщений сервера обмена

Теперь, чтобы узнать, какое входящее сообщение было выбрано, вы можете использовать:

Outlook.Explorer explorer = null;
explorer = outlookObj.ActiveExplorer();
            if (explorer.Selection.Count > 0)
            {
                var sel = explorer.Selection[1];
                if (sel is Microsoft.Office.Interop.Outlook.MailItem)
                {
                    var item = sel as MSOutlook.MailItem;
                    MessageBox.Show("Selected letter: "+item.Body);
                }
            }
...