寫作時間:2021-01-08
標題:
【MATLAB】如何使用matlab中打開pdf、播放視頻等,這些都很easy~(教你學習ActiveX)
目錄:
1.學習這個技能的緣由
2.實作方法
-2.1 呼叫視頻組件
-2.2 呼叫pdf組件
3.追根到底,搞懂內部機制
-3.1 何為activeX?
-3.2 matlab如何呼叫與操作activeX組件?
4.總結
正文
1.學習這個技能的緣由
有時候,在使用matlab時,內部的組件又太少,不能滿足我們需求的功能,
比如,我們要在figure視窗里面,打開一個視頻,如下:

視頻打開了,如下:

或比如,我們要在figure視窗里面,打開一個pdf,如下:

等等,,
那么,這些要怎么做呢?
2.實作方法
-2.1 呼叫視頻組件
代碼如下:
clc
clear all
%列出該計算機中存在的activeX組件
list=actxcontrollist;
%獲取一種activeX控制元件--WMPlayer.OCX.7
clf
figure
h=actxcontrol("WMPlayer.OCX.7",'position',[0 0 600 400],'parent',gcf);
%獲取該activeX控制元件的方法
h.methods
%檔案
filename="F:\EV\emc.mp4";
%示例:使用其openPlayer方法,打開視頻
openPlayer(h,filename)
-2.2 呼叫pdf組件
代碼如下:
clc
clear all
%列出該計算機中存在的activeX組件
list=actxcontrollist;
%獲取一種activeX控制元件--AcroPDF.PDF.1
h=actxcontrol("AcroPDF.PDF.1",'position',[0 0 1200 800]);
%獲取該activeX控制元件的方法
h.methods
%獲取該activeX控制元件的方法,以及方法的詳細使用方法
methods(h,"-full")
%檔案
filename="G:\論文\icme.pdf";
%示例:使用其LoadFile方法,加載pdf檔案
LoadFile(h,filename);
%示例:使用其Print 方法,列印檔案
Print(h);
-2.3 其他組件的玩法
畫貓畫虎,依葫蘆畫瓢,如法炮制,套路一致,
3.追根到底,搞懂內部機制
套路要想玩的溜,那就搞懂本質,
上述操作僅是表象,要明其理,究其本身,
其實上述的視頻播放器,pdf 閱讀器就類似是一個個的組件,
但是這些組件并不是matlab自帶的,這些組件是使用C/C++開發的,
所以問題的本質就是:如何使用matlab通過activeX呼叫C/C++程式,
這些組件有個共同的名稱,activeX,
-3.1 何為activeX?
ActiveX是一類軟體組件或軟體物件,在實際使用中ActiveX常常被插入到網頁或者其他的應用程式以完成功能與應用,
1996年,微軟在windows系統廣泛應用的COM和OLE基礎上,提出了ActiveX,
COM,component object model,組件物件模型,是一種框架,通過COM技術,用戶可以將多個不同應用程式集成到一個復雜的應用方案中,
OLE,object linking ande embedding ,物件鏈接與嵌入,是一種創建復合檔案的技術,復合檔案包含了由不同源應用程式創建的、具有不同型別的資料,諸如:文字、聲音、影像、應用程式等,
OLE最初版本僅僅面向符合檔案,而COM應OLE被提出,其出發點是:讓某一個軟體通過一個通用的機構為另一個軟體服務,
OLE最初僅僅面向復合檔案,是早于COM提出,但COM是OLE的基礎,
COM是一個純技術名字,ActiveX和OLE是有商標的,ActiveX是寬松定義的,基于COM的技術集合,而OLE依然僅指復合檔案,
小結一下:
而C/C++語言是開發ActiveX的主要語言之一,
所以,我們要使用matlab呼叫activeX組件,然后使用activeX的方法進行操作,就是使用matlab通過activeX呼叫C/C++程式,是一種matlab呼叫C/C++程式的途徑或者技法,
-3.2 matlab如何呼叫與操作activeX組件?
我來總結下step:
step1:查看該計算機中存在的activeX組件
step2:呼叫該組件
step3:查看該組件的方法,操作即可
1)step1
%step1:查看該計算機中存在的activeX組件
list=actxcontrollist;
回傳一個元胞陣列,如下:

注:
組件個數的多少,不通電腦有差異,
2)step2
%step2:呼叫該組件
%以AcroPDF.PDF.1為例
%獲取一種activeX控制元件--AcroPDF.PDF.1
h=actxcontrol("AcroPDF.PDF.1",'position',[0 0 1200 800]);

3)step3-1
%step3-1:查看該組件的方法,操作即可
%以AcroPDF.PDF.1為例
%獲取該activeX控制元件的方法
h.methods
查看其方法,回傳如下:



methodsview(h)%這是一種查看控制元件的好方法,

這里也小結一下,matlab查看ActiveX控制元件的3個命令,
%1
methods(h)
% 回傳控制元件handle的方法與名稱
%或h.methods
%2
methods(h,"-full")
% 回傳控制元件handle的方法與名稱,輸入...
%引數型別和回傳值型別
%3
methodsview(h)
% 打開控制元件方法顯示面板
這下理解了這句話了吧,ActiveX是一類軟體組件或軟體物件
4)step3-2
%step3-2:查看該組件的方法,操作即可
%以AcroPDF.PDF.1為例
filename="G:\論文\icme.pdf";
%示例:使用其LoadFile方法,加載pdf檔案
LoadFile(h,filename);

4.總結
再次重復這句話:
C/C++語言是開發ActiveX的主要語言之一,
所以,我們要使用matlab呼叫activeX組件,然后使用activeX的方法進行操作,就是使用matlab通過activeX呼叫C/C++程式,是一種matlab呼叫C/C++程式的途徑或者技法,
多說一句:
上述的這些方法,其實實戰價值不高,我也是瞎琢磨,主要是理解 軟體的設計思想,以及matlab與 C/C++,程式設計,框架等的關系,
重在悟“道”明“理”,而非學“技”學“術”,
THE END~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246632.html
標籤:其他
上一篇:JAVA反編譯工具(界面版本的)-JAR反編譯-war反編譯-war逆向工程
下一篇:Nacos搭建集群以及遇到的問題
