Outlook处置应用程序

问题描述 投票:1回答:1

我使用Windows窗体,并使用Interop库以以下方式执行Outlook应用程序:

 Outlook.Application outlookApp = new Outlook.Application();
 Outlook.MailItem mailMessage = (Outlook.MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem);

            mailMessage.Subject = "[email protected]";
            mailMessage.HTMLBody = "test";
            mailMessage.Display(true);

要执行Outlook,我使用mailMessage.Display(true);,但是当我使用它不再能使用我的应用程序时,我的应用程序只是冻结了,但是当我再次关闭Outlook应用程序时,它又工作了。如何将Outlook视作应用程序的依赖项,以便同时使用我的应用程序和Outlook?问候

c# winforms interop
1个回答
0
投票

1。创建一个backgroundWorker

[通过在组件下的工具箱中添加它来创建backgroundWorker实例。

2。在表单构造器中

将新添加的backgroundWorker实例放置在表单类的构造函数中:

public Form1()
{
    InitializeComponent();

    outlookWorker.DoWork += new DoWorkEventHandler(outlookWorker_DoWork);
}

3。 RunWorkAsync

通过应该打开Outlook窗口的按钮的button_click事件中的backgroundWorker实例添加background.WorkerAsync方法:

private void button1_Click(object sender, EventArgs e)
{
    outlookWorker.RunWorkerAsync();
}

4。打开前景窗口

添加先前编写的代码以为backgroundWorker的DoWork事件实例化Outlook窗口:

private void outlookWorker_DoWork(object sender, DoWorkEventArgs e)
{
    Outlook.Application outlookApp = new Outlook.Application();
    Outlook.MailItem mailMessage = (Outlook.MailItem)outlookApp.CreateItem(Outlook.OlItemType.olMailItem);

    mailMessage.Subject = "[email protected]";
    mailMessage.HTMLBody = "test";
    mailMessage.Display(true);
}

现在,打开Outlook窗口后,您可以按任意按钮或在表单上执行辅助操作。

我希望这可以帮助您实现目标。

来源

  1. https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.backgroundworker?view=netcore-3.1
© www.soinside.com 2019 - 2024. All rights reserved.