如何确定Outlook是否有任何联系人

时间:2010-07-19 18:44:13

标签: c# vb.net outlook

我有一个VB.NET Windows应用程序,我在其中使用Outlook的联系人作为我的地址簿来获取电子邮件地址列表。我希望它使用Outlook作为通讯簿,但如果尚未设置Outlook邮箱或没有联系人,那么我根本不希望Outlook出现。我遇到的问题是,一旦我尝试访问Outlook,就会出现Outlook启动向导,我不想发生这种情况。这是我的代码:

Dim ao As Outlook.Application
Dim ons As Outlook.NameSpace
Dim Contacts As Outlook.Items

ao = New Outlook.Application
' The Outlook Startup Wizard comes up on this line of code.
ons = ao.GetNamespace("MAPI")

1 个答案:

答案 0 :(得分:1)

您可以检查以下注册表项以查看Outlook是否已配置:

“HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows \ Messaging Subsystem \ Profiles”

以下代码示例演示了这一点:

Imports Microsoft.Win32

Module Module1

    Sub Main()
        Console.WriteLine("Outlook Profile Setup?:" + OutlookProfileExists().ToString())

        Console.ReadLine()
    End Sub

    Public Function OutlookProfileExists() As Boolean
        Dim rk As RegistryKey = Registry.CurrentUser
        Dim sk = rk.OpenSubKey("Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles")

        Return sk.SubKeyCount > 0
    End Function
End Module

假设已配置,则按正常方式启动并检查联系人列表。无论如何我都无法在不启动它的情况下阅读联系人列表,但至少可以验证它是否已配置。