Matlab---如何利用Com对象

原创 2013年12月06日 09:37:50
% 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






相关文章推荐

基于VS2008和Matlab R2010b版本的混合编程的实现(转自:http://blog.sina.com.cn/s/blog_49cb42490100nm5j.html)

众所周知Matlab的强大运算能力让各种工程软件望而却步,而VC程序的友好界面又让人爱不释手,如果能够让两者的优势结合起来的话,势必能让程序员欢欣鼓舞。还好MathWorks已经为我们想到了,基本上现...

基于MATLAB R2009a 的COM组件与VC编程体会 Step by Step

独自摸索了一天时间,终于将MATLAB COM组件调用过程弄清楚了,将体会总结一下,以供大家分享。 第一步:编写m文件,测试正确性 编写m文件,m文件必须要有函数function,如: func...

Matlab以MEX方式调用C源代码(转载http://blog.sina.com.cn/s/blog_468651400100coas.html)

Matlab以MEX方式调用C源代码 (2009-04-23 20:10:15) 转载▼ 标签: 杂谈   如果我有一个用C语言写的函数,实现了一个...

Matlab 文件操作(转载http://www.cnblogs.com/longdouhzt/archive/2013/01/29/2881749.html)

Matlab 文件操作 [转] 1、  Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件。 2、  fid=fopen(文件名,打开方式) ...

在MATLAB下创建COM组件以及环境变量的设置

(1)在MATLAB的命令窗口中(command window)输入以下命令: >> deploytool 将会弹出如图12.20所示的界面。单击“File”→“New Deployment Pr...

VC++通过COM调用Matlab程序

实际上VC与matlab的接口实现方法有很多种,matcom只是其中一种,本文再介绍一种比较容易实现的方法:COM接口方法。COM(Compponent Object Model组件对象模型)是一项比...

COM对象创建过程总结

  • 2015年03月04日 12:58
  • 16KB
  • 下载

如何使我们的COM对象可以被脚本语言调用

COM初探(五)——从IDispatch接口继承 (一)目标 本文用一个简单的例子来讲述如何使我们的COM对象可以被脚本语言调用。 (二)IDL文件 为了在脚本语言环境中使用COM组件...

COM对象模块.ec

  • 2014年09月06日 02:03
  • 15KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Matlab---如何利用Com对象
举报原因:
原因补充:

(最多只允许输入30个字)