在加载项执行之前成功打开Outlook

时间:2017-09-10 06:50:45

标签: vb.net visual-studio vsto outlook-addin outlook-vba

我构建了一个VSTO Outlook Addin(使用Visual Studio)将电子邮件从一个文件夹复制到另一个文件夹,然后匹配一些条件。

我将代码置于Sub ThisAddIn_Startup()下,该代码在Outlook启动开始时开始运行。这会在执行此加载项函数之前创建完全打开Outlook应用程序的延迟。处理启动画面以打开主Outlook窗口需要更长的时间。

有没有办法让我可以延迟加载项功能的执行,这样首先 - outlook将成功打开,电子邮件将开始同步,然后在一定时间(比如说5分钟)后加载项将执行

我尝试了“Threading.Thread.Sleep()”,但它冻结了整个过程并增加了额外的延迟时间来打开Outlook应用程序

Public Class ThisAddIn
   'Threading.Thread.Sleep(60000)  

   Public Sub ThisAddIn_Startup() Handles Me.Startup        
      Call CopyMails()
   End Sub

   Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
   End Sub

   Public Sub CopyMails()
      'Some codes here
   End Sub

End Sub

1 个答案:

答案 0 :(得分:1)

我不确定Outlook API是否有更好的方法来实现您的目标,但可以通过以下方式实现5分钟的延迟:

      <Group
        objects={[<Rect
            ref="rect1"
            width={50}
            height={50}
            left={150}
            top={150}
            fill="orange"
            shadow="rgba(0,0,0,0.3) 5px 5px 5px"
        />,
        <Rect
            ref="rect2"
            width={60}
            height={60}
            left={145}
            top={145}
            stroke="purple"
            strokeWidth={2}
            blur={20}
        />]}
      />