以下 为 代码 从 c# 转换到 vb.net
如何把 该内容 变为 foxtable 可用的全局代码 求指点 ,谢谢 老板
Imports System
Imports System.Linq
Imports Microsoft.Office.Interop.Outlook
Imports System.Collections.Generic
Namespace EmailReceiver
Class Program
Shared outlookApp As ApplicationClass = New Microsoft.Office.Interop.Outlook.ApplicationClass()
Shared ns As [NameSpace]
Private Shared Sub Main(ByVal args As String())
Console.WriteLine("start to monitor new emails")
ns = outlookApp.GetNamespace("MAPI")
outlookApp.NewMailEx += New ApplicationEvents_11_NewMailExEventHandler(AddressOf outlookApp_NewMailEx)
outlookApp.NewMail += New ApplicationEvents_11_NewMailEventHandler(AddressOf outlookApp_NewMail)
While True
End While
End Sub
Private Shared Sub outlookApp_NewMail()
Console.WriteLine("a new message comes: new email")
End Sub
Private Shared Sub outlookApp_NewMailEx(ByVal EntryIDCollection As String)
Console.WriteLine("a new message comes")
AnalyzeNewItem(EntryIDCollection)
End Sub
Private Shared Sub AnalyzeNewItem(ByVal entry As String)
Dim inbox = ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox)
Dim allmails As List(Of MailItem) = New List(Of MailItem)()
For Each item In inbox.Items
If TypeOf item Is MailItem Then
Dim mail = TryCast(item, MailItem)
allmails.Add(mail)
End If
Next
Dim latest = allmails.Max(Function(s) s.ReceivedTime)
Dim latestMailItem = allmails.FirstOrDefault(Function(s) s.ReceivedTime = latest)
If latestMailItem IsNot Nothing Then
Console.WriteLine(latestMailItem.Subject)
Console.WriteLine(latestMailItem.[To])
Console.WriteLine(latestMailItem.SenderName)
Console.WriteLine(latestMailItem.ReceivedTime)
Console.WriteLine(latestMailItem.Body)
End If
End Sub
End Class
End Namespace