+ -
当前位置:首页 → 问答吧 → VB6编的发送邮件 运行时错误'429' ActiveX部件不能创建对象 (win7+office2010)

VB6编的发送邮件 运行时错误'429' ActiveX部件不能创建对象 (win7+office2010)

时间:2011-11-01

来源:互联网

我的编程环境: WIN XP + OFFICE2003 VB6.0
使用环境: WIN XP + OFFICE 2003;WIN XP + OFFICE 2007;WIN7 + OFFICE 2007;WIN7 + OFFICE 2010

我的程序如下:
  Dim objOutlookApp As Object
  Dim objMail As Object

  Set objOutlookApp = CreateObject("Outlook.Application")
  Set objMail = objOutlookApp.CreateItem(0)
   
  With objMail
  .Subject = "Hello!"
  .To = txtSendto.text
  .Body = "Hello! It's test."
  .Send
  End With

打包,安装,都没有问题。

目前的问题是,大部分使用环境都没有问题,运行正常,但是部分WIN7 + OFFICE 2010的环境下,会出现“运行时错误'429' ActiveX部件不能创建对象”的问题。有些WIN7 + OFFICE 2010的环境下是可以正常运行的。

请大家帮忙看看,谢谢!

作者: wagezhou   发布时间: 2011-11-01

应该是权限的问题

作者: worldy   发布时间: 2011-11-01

引用 1 楼 worldy 的回复:
应该是权限的问题


能说的清楚一点吗?什么权限?如何设置?谢谢!

作者: wagezhou   发布时间: 2011-11-01

问题应该出在:
Set objOutlookApp = CreateObject("Outlook.Application")
  Set objMail = objOutlookApp.CreateItem(0)
这两句的其中一句上
把OFFICE2010换成和你编写代码环境下一样的OFFICE。我认为是引用版本的问题。

作者: Veron_04   发布时间: 2011-11-01

引用 3 楼 veron_04 的回复:
问题应该出在:
Set objOutlookApp = CreateObject("Outlook.Application")
Set objMail = objOutlookApp.CreateItem(0)
这两句的其中一句上
把OFFICE2010换成和你编写代码环境下一样的OFFICE。我认为是引用版本的问题。


你的意思是把OFFICE2010卸了 重装2003吗?
但是部分Win7+OFFICE2010的环境下,程序没有问题.

作者: wagezhou   发布时间: 2011-11-01

那你注意过权限吗?

作者: Veron_04   发布时间: 2011-11-01

引用 5 楼 veron_04 的回复:
那你注意过权限吗?


没有注意,请问如何注意?谢谢!

作者: wagezhou   发布时间: 2011-11-01

你的问题原因大概三种可能:
1.你引用了Office组件,由于版本不一致,所以无法创建对象;
2.访问一些COM组件需要管理员权限,用户不是管理员登录。
3.你也要确认一下Office安装的是否注册了运行时表(ROT),具体你可以参考以下链接看看,这个发生的可能性很小.
http://support.microsoft.com/search/default.aspx?query=rot&mode=r&catalog=LCID%3D2052

作者: AisaC   发布时间: 2011-11-01