Outlook Interop:密码保护的PST文件头痛

时间:2010-03-05 21:52:56

标签: c# outlook office-interop

好的,使用C#app中的Outlook Interop程序集识别.PST文件没有问题。但是当我点击受密码保护的文件时,系统会提示我输入密码。 我们正在禁用组织中PST的使用,其中一个步骤是从用户的Outlook配置文件中卸载PST文件。 我需要让这个应用程序静默运行,而不是提示用户。有任何想法吗?有没有办法在没有UI的情况下创建Outlook.Application对象,然后尝试在受密码保护的文件上捕获异常?

// create the app and namespace
Application olApp = new Application();                
NameSpace olMAPI = olApp.GetNamespace("MAPI");
// get the storeID of the default inbox
string rootStoreID = olMAPI.GetDefaultFolder(OlDefaultFolders.olFolderInbox).StoreID;
// loop thru each of the folders
foreach (MAPIFolder fo in olMAPI.Folders)
{
    // compare the first 75 chars of the storeid
    // to prevent removing the Inbox folder.
    string s1 = rootStoreID.Substring(1, 75);
    string s2 = fo.StoreID.Substring(1, 75);
    if (s1 != s2)
    {           
        // unload the folder
        olMAPI.RemoveStore(fo);
    }    
}
olApp.Quit();

1 个答案:

答案 0 :(得分:0)

是的,您可以从其他应用自动化Outlook。 在NameSpace对象上有一个Logon方法,以便您可以登录到配置文件,然后您可以执行任何您想要的操作。但我认为它只会再次弹出提示,因为它自动化但是..有一个第三个libray可以帮助你做这个,因为它通过mapi而不是。在redemption libray

中checkout profman.dll