Outlook Interop: защищенная паролем головная боль PST-файла - PullRequest
1 голос
/ 06 марта 2010

Хорошо, у меня нет проблем с определением файла .PST с помощью сборок Outlook Interop в приложении C #. Но как только я нажимаю на файл, защищенный паролем, мне предлагается ввести пароль. Мы находимся в процессе отключения использования PST в нашей организации, и одним из шагов является выгрузка файлов PST из профиля пользователя Outlook. Мне нужно, чтобы это приложение работало тихо и не подсказывало пользователю. Есть идеи? Есть ли способ создать объект 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 голосов
/ 07 марта 2010

Да, вы можете автоматизировать Outlook из другого приложения. Для объекта NameSpace существует метод Logon , так что вы можете войти в профиль, а затем делать все, что захотите. Но я думаю, что это просто вызовет подсказку снова, поскольку это автоматизация, но .. Существует 3-й libray, который может помочь вам сделать это так же, как он делает это через mapi. извлечение profman.dll в библиотеку погашения

...