什么是com ?
COM是Component Object Model (组件对象模型)的缩写 COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM与语言,平台无关的特性使所有的程序员均可充分发挥自己的才智与专长编写组件模块;等等. COM所含的概念并不止是在Microsoft Windows操作系统下才有效。COM并不是一个大的API,它实际上象结构化编程及面向对象编程方法那样,也是一种编程方法。在任何一种操作系统中,开发人员均可以遵循"COM方法"。 补充:COM组件由以Win 32动态连接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。遵循COM规范编写出来的组件将能够满足对组件架构的所有要求。COM组件可以给应用程序、操作系统以及其他组件提供服务;自定义的COM组件可以在运行时刻同其他组件连接起来构成某个应用程序;COM组件可以动态的插入或卸出应用。 GENERO提供的COM支持函数:
CreateInstance 作用:创建一个 COM object对象,类似其他高级语言的new,在调用任何COM对象前,必须先创建一个COM对象。 语法: CALL ui.Interface.frontCall("WinCOM","CreateInstance", [ program ], [handle] ) program:COM对象名称 handle:返回的句柄,GENERON中一般使用INTEGER整数类型保存 说明:handle必须是INTEGER 如果handle返回-1,则代表出现错误,CreateInstance创建时错误多半是创建对象失败 例如: 创建一个EXCEL对象 CALL ui.Interface.frontCall("WinCOM", "CreateInstance", ["Excel.Application"], [xlapp]) 创建一个IE对象 CALL ui.Interface.frontCall("WinCOM", "CreateInstance", ["InternetExplorer.Application"], [ieapp]) 备注:任何在windows中注册的com都可以被创建 GetProperty 作用:获得一个COM中的属性 语法: CALL ui.Interface.frontCall("WINCOM","GetProperty", [ handle, member ], [result] ) handle:第一步创建的对象句柄 member:需要获得的属性名 result:返回获得的属性 说明:用于接收COM属性的参数必须是STRING值,CHAR,VCHAR都不行 例如: #获得EXCEL表中当前活动的工作表A1单元格的值 CALL ui.Interface.frontCall("WinCOM", "GetProperty", [xlwb, 'activesheet.Range("A1").Value'], [result]) SetProperty 作用:设定一个COM中的属性 语法: CALL ui.Interface.frontCall("WINCOM","SetProperty", [handle, member, value], [result] ) handle:第一步创建的对象句柄 member:需要获得的属性名 value:设定的属性值 result:返回执行结果 说明:value必须是STRING类型,result必须是INTEGER整数类型 例如: #让工作薄显示 CALL ui.interface.frontCall("WinCOM", "SetProperty",[xlapp, "Visible", true], [result]) #将sheet1工作表A1单元格设定值”tiptop100” CALL ui.Interface.frontCall("WinCOM","SetProperty",[xlapp,"Worksheets('Sheet1').Range('A1').Value", "tiptop100",[result]) GetErro 作用:获得错误信息 语法: CALL ui.Interface.frontCall("WINCOM","GetError", [], [result] ) result:接收错误值的变量 例如:CALL ui.Interface.frontCall("WinCOM","GetError",[],[mess]) ReleaseInstance 作用:释放COM对象 语法: CALL ui.Interface.frontCall("WINCOM","ReleaseInstance", [handle], [result] ) handle:第一步创建的句柄 result:执行结果 例如: CALL ui.Interface.frontCall("WinCOM","ReleaseInstance", [xlwb], [res] ) 例如操作EXCEL COM对象 CALL ui.Interface.frontCall("WinCOM", "CreateInstance", ["Excel.Application"], [xlapp]) CALL ui.interface.frontCall("WinCOM", "CallMethod",[xlapp, "WorkBooks.Add"], [xlwb]) CALL ui.interface.frontCall("WinCOM", "SetProperty",[xlapp, "Visible", true], [result]) #单元格填充内容 CALL ui.Interface.frontCall("WinCOM", "SetProperty", [xlapp, 'Worksheets("Sheet1").Range("A1").Value',”abc”],[result]) #合并单元格 CALL ui.interface.frontCall("WinCOM", "CallMethod",[xlapp, 'Worksheets("Sheet1").Range("'A1:A2'").Merge'], [xlwb]) #设定行高 CALL ui.interface.frontCall("WinCOM", "SetProperty",[xlapp, 'Worksheets("Sheet1").Rows("2:2").RowHeight',"30"], [result]) #设定列宽 CALL ui.interface.frontCall("WinCOM", "SetProperty",[xlapp, 'Worksheets("Sheet'||p_book||'").Columns("A:A").ColumnWidth',"3.3"], [result]) #设定单元格底色为黄色 CALL ui.interface.frontCall("WinCOM", "SetProperty",[xlapp, 'Worksheets("Sheet1").Range("A01'").Interior.ColorIndex',"6"], [result]) #添加线框 CALL ui.interface.frontCall("WinCOM", "SetProperty",[xlapp, 'Worksheets("Sheet1").Range('A2:A10').Borders.LineStyle',"xlContinuous"], [result]) #释放对象 CALL ui.Interface.frontCall("WinCOM","ReleaseInstance", [xlwb], [res] ) CALL ui.Interface.frontCall("WinCOM","ReleaseInstance", [xlapp], [res] ) |
|||||||||||||||
|
沙发#
发布于:2016-12-02 18:44
6666
|
|
板凳#
发布于:2017-01-18 10:10
厉害了 这么详细!
|
|