2010-07-28 5 views
1

Nous utilisons actuellement le code suivant pour créer un courriel dans Outlook afin que l'utilisateur puisse saisir ce qu'il veut dans Outlook, puis lorsque le courriel est envoyé, le système lui demande si ils voudraient enregistrer l'email.VB.net 2005 Envoi de courriels avec Outlook 2003

  Dim objOutlook As Object 
      Dim objMessage As Object 
      Dim objInspector As Object 

      If strEMail <> "" Then 
       objOutlook = CreateObject("Outlook.Application") 
       objMessage = objOutlook.CreateItem(0) 
       objMessage.To = strEMail 

       objInspector = objMessage.GetInspector 
       objInspector.Display() 

       While Not objInspector.CurrentItem Is Nothing 
       End While 

       frmSaveSentEmail.BringToFront() 
       frmSaveSentEmail.ShowDialog() 

Le code fonctionne correctement sur Outlook 2003 tant qu'ils n'utilisent pas Word comme éditeur d'e-mail. Cependant, avec Word configuré en tant qu'éditeur de courrier électronique, la boucle while qui teste si l'objet de courrier électronique est fermé ne se termine jamais.

Existe-t-il un moyen de gérer cela différemment afin qu'il fonctionne même avec Word en tant qu'éditeur?

Répondre

0

Nous avons fini de changer la boucle:

While Not objOutlook.ActiveInspector Is Nothing 
    End While 

Cette résolu le problème.

0

Je ne suis pas très expérimenté avec la programmation Outlook via VB.NET, mais cette boucle semble certainement suspecte. Peut-être que vous devriez essayer de profiter de Close event de l'inspecteur au lieu de vérifier à plusieurs reprises sa propriété CurrentItem. Si je ne me trompe pas, vous devriez être en mesure de présenter votre boîte de dialogue dans le gestionnaire d'événements.

Questions connexes