Ruby win32ole - 如何判断OLE类类型,OLE类是否支持某个方法
我正在使用 Ruby 1.8。 使用 WIN32OLE 模块 -
1) 如何确定 OLE 对象实例的类名? 2)如何判断对象实例是否支持特定方法?
在 Outlook 自动化脚本中,我尝试删除“已删除项目”文件夹中超过 21 天的项目。 对于邮件项目,我想使用 ReceivedTime 属性,但为了做到这一点,我需要检查该项目是否实际上是 MailItem 实例。
对于第二个,我能想到的最好的是(非常慢):
def MethodExists(obj, methodName)
obj.ole_methods.each{|method|
if (method.name == methodName)
return true
end
}
return false
end
I am using Ruby 1.8. Using the WIN32OLE module -
1) How do I determine the class name of an OLE object instance?
2) How can I tell whether an object instance supports a particular method?
In an Outlook automation script, I am trying to delete the items in the 'Deleted Items' folder which are older than 21 days. For mail items, I want to use the ReceivedTime property, but in order to do that, I need to check whether the item is actually a MailItem instance.
For the second, the best I have been able to come up with is (really slow):
def MethodExists(obj, methodName)
obj.ole_methods.each{|method|
if (method.name == methodName)
return true
end
}
return false
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
具体到 WIN32OLE 对象...
如何确定 OLE 对象实例的类名?
如何判断对象实例是否支持特定方法?
With specific regard to WIN32OLE objects...
How do I determine the class name of an OLE object instance?
How can I tell whether an object instance supports a particular method?
obj.class
:
obj.class
: