Сбой WScript/CScript при входе в систему с использованием Outlook Redemption

Предпосылки / Выпуск / Вопрос

Я только что установил Outlook 2013 (64-разрядную версию) на свою Windows 7 (64-разрядную версию) и использую версию Outlook Redemption для разработчиков, чтобы протестировать ее с Outlook 2013 после успешного использования для разработки с Outlook 2010. Я скачал новейшие файлы погашения и использовать установщик, чтобы установить и зарегистрировать библиотеки DLL.

Теперь, когда я пытаюсь запустить VBScript против Redemption, используя WScript.exe или же CScript.exe, Сбой WScript/CScript.

Кто-нибудь знает, почему WScript/CScript будет аварийно завершать работу (подробности см. Ниже)?

Код

Вот мой код:

Set Session = CreateObject("Redemption.RDOSession")
WScript.Echo "Session created."
WScript.Echo Session.Version
Session.Logon("Outlook")
WScript.Echo "Logged on with default profile."
Session.Logoff

ошибка

Код не работает, когда он доходит до Session.Logon("Outlook"), Вот сообщение об ошибке, которое я получаю, и некоторые дополнительные детали:

Microsoft Windows Based Script Host has stopped working

Problem details
-------------------
Problem Event Name:     APPCRASH
Application Name:       WScript.exe
Application Version:    5.8.7601.18283
Application Timestamp:  5258a6e6
Fault Module Name:      mso.dll
Fault Module Version:   0.0.0.0
Fault Module Timestamp: 567a40e6
Exception Code:         c0000005
Exception Offset:       000000000135991f
OS Version:             6.1.7601.2.1.0.256.4

Поиск проблемы

Я попытался переименовать MSO.dll и восстановить Outlook, но это не имело никакого эффекта. Я также попытался воссоздать профиль по умолчанию (называемый "Outlook"), но это также не имело никакого эффекта.

Я также попытался установить Redemption с помощью regsvr32.exe,

Я гарантировал, что использую 64-битную версию WScript.exe а также CScript.exe,

Ради потомков я проверил, чтобы узнать, смогу ли я подключиться к MAPI с помощью Redemption. Вот код:

Set Outlook = CreateObject("Outlook.Application")
Set Session = Outlook.GetNamespace("MAPI")
Session.Logon("Outlook")

Set rdoSession = CreateObject("Redemption.RDOSession")
WScript.Echo "RDOSession created."
WScript.Echo rdoSession.Version
rdoSession.MAPIOBJECT = Session.MAPIOBJECT
WScript.Echo "RDOSession MAPIOBJECT created."
rdoSession.Logoff
Session.Logoff

Приведенный выше код отлично работает в обоих WScript.exe а также CScript.exeВозможно, потому что объектная модель Outlook используется для создания сеанса Outlook, а Redemption только подключается.

Примечание. Я не могу использовать последний фрагмент кода для того, что планирую делать, потому что приведенный выше код не будет работать из планировщика задач Windows, если моя машина заблокирована или я вышел из системы (он работает только в том случае, если я вошел). Следует отметить, что первый фрагмент кода работал нормально с Outlook 2010, хотя я работал под управлением Outlook 2010 32-разрядной с Windows 7 64-разрядной. Для Outlook 2013 я решил перейти на 64-битную.

0 ответов

Другие вопросы по тегам