使用Outlook Redemption

时间:2016-02-09 18:08:39

标签: vbscript outlook-redemption outlook-2013 wsh

背景/问题/问题

我刚刚在我的Windows 7(64位)计算机上安装了Outlook 2013(64位),并且我使用Outlook Redemption的开发人员版本在成功使用Outlook 2013进行开发后使用Outlook 2013对其进行测试我下载了最新的Redemption文件,并使用安装程序安装并注册了DLL。

现在,当我尝试使用WScript.exeCScript.exe针对Redemption运行VBScript时,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”),但这也没有效果。

我还尝试使用regsvr32.exe安装Redemption。

我确保我使用的是64位版本的WScript.exeCScript.exe

为了后人,我测试了一下我是否可以通过Redemption连接到MAPI。这是代码:

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.exeCScript.exe中都可以正常工作,可能是因为Outlook对象模型用于创建Outlook会话,而Redemption只是挂钩。

注意 - 我不能将最后一段代码用于我计划进行的操作,因为如果我的机器被锁定或者我正在使用上述代码将无法在Windows任务计划程序中运行注销(仅在我登录时才有效)。我应该指出,第一个代码片段在Outlook 2010中运行良好,尽管我使用Windows 7 64位运行Outlook 2010 32位。对于Outlook 2013,我决定转向64位。

0 个答案:

没有答案