在vb.net中打开一个填充的outlook电子邮件,然后关闭线程
问题描述:
所以只需要清楚,我已经得到了这个“工作”(又名它是可用的)。这里是我的代码:在vb.net中打开一个填充的outlook电子邮件,然后关闭线程
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
这不正是我需要的,只是一对夫妇的挑剔的东西。实际上,vb.net就像我打开一个对话窗口一样对待它,它正在等待用户在继续之前用弹出的电子邮件执行某些操作。在此期间,我将自己的程序转移到了后台工作人员身上,但是自己打开的电子邮件有一些我想解决的问题。
主要是它不能被最小化,最小化按钮是灰色的。它也开放最大化,而不是最大的交易,但烦人。最后它被列为无响应。不是的,您可以完成填写并发送,但显示为无响应。
我想要做的就是打开电子邮件,然后完成它!一旦VB.NET打开,它就没有更多的功能。我只是无法找到一个方法,即使是一个黑客,做到这一点。事实上,由于它是后台线程,我甚至不在乎它是否放弃。我只是希望用户能够最小化电子邮件,直到他们选择使用它。不会被迫处理它。您可以点击任务栏中的其他程序,然后将电子邮件发送回去,但并非所有用户都意识到这是可能的。
答
我解决了我自己的问题。原来我的问题来自这条线:
omsg.Display(True)
这导致它打开它,正如我所描述的。或多或少锁定线程。然而:
omsg.Display
修复了我所有的问题。我见过的原始示例代码就是这样,我不知道你可以改变它。我甚至不认为我现在需要后台工作人员,但没有改变它。
无论如何,解决了。感谢您的期待;)