2017-09-25 8 views
0

Donc, pour être clair, j'ai ce "travail" (aka c'est utilisable). Voici mon code:Ouvrez un email Outlook rempli dans vb.net puis fermez le fil

Dim Outl As Object 
      Outl = CreateObject("Outlook.Application") 
      If Outl IsNot Nothing Then 
       Dim omsg As Object 
       omsg = Outl.CreateItem(0) 
       omsg.cc = UserId 
       omsg.subject = "CRIT " & eventId & " - " & shortSummary & "" 
       omsg.body = reportBody 
       omsg.Display(True) 'will display message to user 
       EmailExportBackgroundWorker.CancelAsync() 
       EmailExportBackgroundWorker.Dispose() 
      End If 
     End If 

Cela fait exactement ce dont j'ai besoin, sauf pour un couple de choses difficiles. En effet, vb.net traite cela comme si j'avais ouvert une fenêtre de dialogue, il attendait que l'utilisateur fasse quelque chose avec l'email surgi avant de passer à autre chose. J'ai contourné mon programme pendant ce temps en le déplaçant vers un arrière-plan, mais l'email qui s'est ouvert a quelques bizarreries que je voudrais résoudre.

Principalement, il ne peut pas être réduit, le bouton de réduction est grisé. Il est également ouvert maximisé, pas le plus gros problème, mais ennuyeux. Enfin, il est répertorié comme ne répond pas. Ce n'est pas, vous pouvez finir de le remplir et l'envoyer, mais il montre comme ne répond pas.

Ce que je voudrais faire, c'est que la bande de roulement ouvre l'email, alors faites-le avec! VB.NET n'a plus rien à voir avec ça une fois ouvert. Je ne peux pas trouver un moyen, même un hacky, de le faire. En fait, puisqu'il s'agit d'un fil de fond, je ne m'inquiète même pas vraiment si ça lâche. Je veux juste que l'utilisateur soit capable de minimiser l'email jusqu'à ce qu'ils choisissent de faire quelque chose avec lui. Ne pas être forcé de faire avec. Vous pouvez cliquer sur un autre programme dans la barre des tâches et envoyer l'e-mail à l'arrière, mais tous les utilisateurs ne réalisent pas que c'est possible.

Répondre

0

J'ai résolu mon propre problème. Il s'avère que mes problèmes sont venus de cette ligne:

omsg.Display(True) 

Cela l'amène à l'ouvrir comme je l'ai décrit. Plus ou moins enfermer le fil. Cependant:

omsg.Display 

corrige tous mes problèmes. Le code d'exemple original que j'avais vu l'avait comme ça et je ne m'étais pas rendu compte que vous pouviez le changer. Je ne pense même pas avoir besoin de l'arrière-plan maintenant, mais je ne le change pas.

Quoi qu'il en soit, résolu. Merci de votre attention;)