您的位置:首页 > 编程语言 > MATLAB

Matlab---如何利用Com对象

2013-12-06 09:37 323 查看
% 1获取Com对象清单

list = actxcontrollist;  

s=sprintf(' Name = %s\n ProgID = %s\n File = %s\n', list{114:115,:});

h = actxcontrolselect;% 获取GUI控件

% 2 查找某个Com对象。

for ii = 1:length(list)

   if ~isempty(strfind([list{ii,:}],'word')) 

      s = sprintf(' Name = %s\n ProgID = %s\n File = %s\n', ...

             list{ii,:})

   end

end

% 3 获取GUI COM控件

s=actxcontrolselect;

% 4 创建Com对象、 

e=actxserver('Excel.application');

e.visible=1; %可视化

eWorkbooks=e.Workbooks; 

w=eWorkbooks.Add  

%5 获取属性、接口

e.get % 提取属性用get  

isprop %是否是属性

isinterface% 是否是接口

e.get('Visible') %提取某个属性的值  e.visible  e.Visible  属性不区分大小写

e.visible=1; e.set('visile',1); set(e,'visible',1) ;% 修改属性

 

cal = actxcontrol('mscal.calendar', [0 0 500 500]);

cal.propedit  % 可视化修改属性

e.addproperty('positon')

e.deleteproperty('positon')

%6 获取方法

e.invoke% 提取方法用invoke

e.methods% 提取方法用methods 

e.methods('-full') % 详细信息

e.methodsview  % 提取方法用methods  可视化

ismethod

%7 获取事件

e.events

e.eventlisteners % 显示未注册的事件

isevent

%8 退出

e.Workbook.Close

e.Quit; %  退出实例,还可以重新调用。  

e.release %释放控制 ,不能重新调用了。

e.delete;% 释放控制,删除对象, 不能重新调用了。
delete(e)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

分享一个类,用于整合Com对象的属性,接口,类,方法

classdef   getCom      

    properties

        interface

        subinterface

        propoties

        method

        class

        event

    end

    

    methods

        function obj=getCom(Component)

           

                obj.interface=Component;

                obj.event=Component.events;

                obj.method=Component.methods;

                obj.class=Component.class;

                s=Component.get;

                [obj.propoties,obj.subinterface]=getprop_subinterface(s);                

             

        end

    end

      methods

          function  [propoties,subinterface]=getprop_subinterface(s) 

              n=0;m=0;

              fieldslist=fields(s);

              for i=1:length(fieldslist) 

                  if isinterface(s.(fieldslist{i}))

                         m=m+1;

                   subinterface.(fieldslist{i})=s.(fieldslist{i});

                  else

                    n=n+1;

                  propoties.(fieldslist{i})=s.(fieldslist{i});  

                  end

                

              end   

              propoties=orderfields(propoties);

              subinterface=orderfields(subinterface);

          end

            

      end

    

end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Matlab Com对象