用于访问COM/DLL对象的方法,读取、修改COM/DLL对象的属性。
-
call method
:属于Dispatch类。用于访问COM/DLL对象的方法。方法进行了重载,方便不同场合调用。返回一个Variant类型的值。 -
callSub method:
使用方法和call一样,不过它不返回值。 -
get method
:读取COM对象的属性值,返回一个Variant类型值。 -
put method
:设置COM对象的属性值。 -
invoke method
:call的另一种用法,更复杂一些。 -
invokesub method:
subcall的另一种用法 -
getProperty method
:属于ActiveXComponent类,读取属性值,返回一个Variant类型值。
setProperty method
:属于ActiveXComponent类,设置属性值。
jacob 中调用vba 命令put 与invoke 关系
put 方法主要用于设置属性值:
如设字体
Dispatch.put(font, “Name”,new Variant(“宋体”));
Dispatch.put(font, “Size”,new Variant(20));
设置替换文本
Dispatch.put(this.selection, "Text", "替换内容");
可以等价于invoke如:
invoke(font, "Name", Dispatch.Put, new Object[]{"宋体"}, new int[1]);
invoke(font, “Size”, Dispatch.Put, new Object[]{new Variant(20)}, new int[1]);
invoke(selection, “Text”, Dispatch.Put, new Object[]{new Variant(“替换内容”)}, new int[1]);
另一方面invoke 可以比put 方法多设置参数,对于Dispatch.get(Dispatch dispatchTarget, String name) 返回Variant,类型非VariantDispatch如boolean,double 等类型;这种情形下,结果不能转换Dispatch也就不能使用Dispatch.put 方法来设置属性值;这是可以使用invoke 方法;如
Dispatch.call(document, "Compatibility",new Variant(4)) 返回boolean值,不能对结果进一步设置值;这时可以使用invoke 方法来处理:Dispatch.invoke(document, "Compatibility",Dispatch.Put, new Object[]{new Variant(4),new Variant(true)}, new int[1]);
版权声明:本文为shufusheng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。