版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第7章LabVIEW調(diào)用操作系統(tǒng)功能2022/11/5第7章LabVIEW調(diào)用操作系統(tǒng)功能第7章LabVIEW調(diào)用操作系統(tǒng)功能2022/11/2第7章1引言任何一個應(yīng)用程序開發(fā)平臺都有其自身的優(yōu)勢與不足,LabVIEW也不例外。作為一個高級編程人員,在開發(fā)一個大的復(fù)雜應(yīng)用程序時必須能夠綜合應(yīng)用不同軟件開發(fā)平臺的功能,才能使項目更加完善。一個好的軟件開發(fā)環(huán)境,也必然具備與其他應(yīng)用程序的交互功能及必要的開發(fā)工具。本章將要講到的讀/寫電子表格文件、讀/寫XML文件、讀/寫配置文件、讀/寫系統(tǒng)注冊表、調(diào)用ActiveX控件、調(diào)用系統(tǒng)鏈接庫及調(diào)用命令行程序等都是LabVIEW與其他應(yīng)用程序的交互方式。第7章LabVIEW調(diào)用操作系統(tǒng)功能引言任何一個應(yīng)用程序開發(fā)平臺都有其自身的優(yōu)勢與不足,LabV2本章內(nèi)容7.1讀/寫電子表格文件7.2讀/寫XML文件7.3讀/寫配置文件7.4讀/寫系統(tǒng)注冊表7.5輸入設(shè)備控制7.6調(diào)用動態(tài)鏈接庫(DLL)7.7ActiveX7.8執(zhí)行系統(tǒng)命令第7章LabVIEW調(diào)用操作系統(tǒng)功能本章內(nèi)容7.1讀/寫電子表格文件第7章LabVIEW調(diào)用操37.1讀/寫電子表格文件LabVIEW文件操作基本步驟打開讀寫、操作關(guān)閉第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件LabVIEW文件操作基本步驟打開47.1讀/寫電子表格文件電子表格寫操作文件格式的要求保存電子表格格式文本文件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件電子表格寫操作第7章LabVIEW57.1讀/寫電子表格文件保存電子表格文件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件保存電子表格文件第7章LabVIE67.1讀/寫電子表格文件電子表格文本文件和電子表格文件生產(chǎn)結(jié)果第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件電子表格文本文件和電子表格文件生產(chǎn)77.1讀/寫電子表格文件電子表格讀操作數(shù)據(jù)讀取類型和格式第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件電子表格讀操作第7章LabVIEW87.2讀/寫XML文件可擴(kuò)展置標(biāo)語言(XML)可擴(kuò)展置標(biāo)語言(XML)是一種用標(biāo)記描述數(shù)據(jù)的格式化標(biāo)準(zhǔn)。與HTML標(biāo)記不同,XML標(biāo)記不是告訴瀏覽器如何按格式處理數(shù)據(jù),而是使瀏覽器能識別數(shù)據(jù)。例如為每本書創(chuàng)建一個XML文件<nonfiction><Title>TouringGermany'sGreatCathedrals</Title><Author>TonyWalters</Author><Publisher>DouglasDrivePublishing</Publisher><PriceUS>$29.99</PriceUS>……</nonfiction>第7章LabVIEW調(diào)用操作系統(tǒng)功能7.2讀/寫XML文件可擴(kuò)展置標(biāo)語言(XML)第7章Lab97.2讀/寫XML文件XML文件寫操作“平化至XML”(FlattenToXML)函數(shù)XML模版第7章LabVIEW調(diào)用操作系統(tǒng)功能7.2讀/寫XML文件XML文件寫操作第7章LabVIEW107.2讀/寫XML文件XML文件讀操作“從XML還原”(UnflattenFromXML)函數(shù)XML格式轉(zhuǎn)換成簇第7章LabVIEW調(diào)用操作系統(tǒng)功能7.2讀/寫XML文件XML文件讀操作第7章LabVIEW117.2讀/寫XML文件從XML文件中讀取數(shù)據(jù)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.2讀/寫XML文件從XML文件中讀取數(shù)據(jù)第7章LabV127.3讀/寫配置文件配置文件VI可讀取和創(chuàng)建標(biāo)準(zhǔn)的Windows配置文件,其標(biāo)準(zhǔn)擴(kuò)展名為.ini,但只要內(nèi)容格式正確,配置文件VI也可操作以任何擴(kuò)展名命名的文件。在.ini文件中,LabVIEW會將路徑數(shù)據(jù)保存為獨(dú)立于平臺的格式。例如絕對路徑/c/temp/data.dat解析為如下路徑:Windowsc:\temp\data.dat;MacOSc:temp:data.dat;Linux/c/temp/data.dat。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件配置文件VI可讀取和創(chuàng)建標(biāo)準(zhǔn)的Wind137.3讀/寫配置文件配置文件寫操作Windows配置文件標(biāo)準(zhǔn)格式生成名為“Configuration.ini”的配置文件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件配置文件寫操作第7章LabVIEW調(diào)用147.3讀/寫配置文件測試配置程序例程程序框圖第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件測試配置程序例程第7章LabVIEW調(diào)157.3讀/寫配置文件測試配置程序例程程序界面和生成文件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件測試配置程序例程第7章LabVIEW調(diào)167.3讀/寫配置文件配置文件讀操作“讀取鍵值”(ReadKey.vi)函數(shù)讀取值數(shù)據(jù)類型設(shè)置第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件配置文件讀操作第7章LabVIEW調(diào)用177.3讀/寫配置文件測試配置程序例程初始化測試配置程序第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件測試配置程序例程第7章LabVIEW調(diào)187.3讀/寫配置文件測試配置程序例程讀取配置信息第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件測試配置程序例程第7章LabVIEW調(diào)197.4讀/寫系統(tǒng)注冊表所謂“注冊表”,實際上是一個龐大的數(shù)據(jù)庫,它包含了應(yīng)用程序和系統(tǒng)軟硬件的全部配置信息,這里所指的注冊表僅針對于Windows操作系統(tǒng)。注冊表系統(tǒng)組成和注冊表結(jié)構(gòu)本節(jié)首先以LabVIEW自帶的三個例子,說明在LabVIEW中讀/寫注冊表的一般方法,然后講解自動配置ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)互連)數(shù)據(jù)源的應(yīng)用實例。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表所謂“注冊表”,實際上是一個龐大的數(shù)207.4讀/寫系統(tǒng)注冊表注冊表寫操作創(chuàng)建注冊表項第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表注冊表寫操作第7章LabVIEW調(diào)用217.4讀/寫系統(tǒng)注冊表程序運(yùn)行結(jié)果WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\MyKey]"MyString"="LabVIEW""MyBinary"=hex:03,02,01,00"MyDWORD"=dword:00000100第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表程序運(yùn)行結(jié)果第7章LabVIEW調(diào)用227.4讀/寫系統(tǒng)注冊表注冊表讀操作第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表注冊表讀操作第7章LabVIEW調(diào)用237.4讀/寫系統(tǒng)注冊表注冊表刪除操作第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表注冊表刪除操作第7章LabVIEW調(diào)247.4讀/寫系統(tǒng)注冊表自動配置ODBC數(shù)據(jù)源ODBC是微軟開發(fā)的服務(wù)結(jié)構(gòu)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API。在應(yīng)用程序開發(fā)中用到數(shù)據(jù)庫時,需要手動配置ODBC數(shù)據(jù)源。一旦相關(guān)的文件路徑發(fā)生改變,則需要再次手動配置,這給最終用戶帶來了極大的不便。將與手動配置相似的注冊表信息寫到注冊表中,實現(xiàn)ODBC數(shù)據(jù)源的自動配置第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表自動配置ODBC數(shù)據(jù)源第7章LabV257.4讀/寫系統(tǒng)注冊表LabVIEW中實現(xiàn)為應(yīng)用程序自動地配置ODBC數(shù)據(jù)源第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表LabVIEW中實現(xiàn)為應(yīng)用程序自動地267.5輸入設(shè)備控制用來獲取連接到計算機(jī)上的操縱桿、鍵盤和鼠標(biāo)的信息輸入設(shè)備控制VI位于“函數(shù)→互連接口→輸入設(shè)備控制”子選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.5輸入設(shè)備控制用來獲取連接到計算機(jī)上的操縱桿、鍵盤和鼠277.5輸入設(shè)備控制實時獲取鼠標(biāo)鍵盤信息例程首先通過“查詢輸入設(shè)備”(QueryInputDevices.vi)查詢按鍵和鼠標(biāo)的信息分別初始化鍵盤和鼠標(biāo)在While循環(huán)中獲取鍵盤按鍵信息和鼠標(biāo)位置及點擊信息關(guān)閉輸入設(shè)備第7章LabVIEW調(diào)用操作系統(tǒng)功能7.5輸入設(shè)備控制實時獲取鼠標(biāo)鍵盤信息例程第7章LabVI287.5輸入設(shè)備控制程序框圖第7章LabVIEW調(diào)用操作系統(tǒng)功能7.5輸入設(shè)備控制程序框圖第7章LabVIEW調(diào)用操作系統(tǒng)297.5輸入設(shè)備控制程序界面第7章LabVIEW調(diào)用操作系統(tǒng)功能7.5輸入設(shè)備控制程序界面第7章LabVIEW調(diào)用操作系統(tǒng)307.6調(diào)用動態(tài)鏈接庫(DLL)動態(tài)鏈接庫動態(tài)鏈接庫(DynamicLinkLibrary,DLL)是一個可以多方共享的程序模塊,內(nèi)部對共享的例程和資源進(jìn)行了封裝。動態(tài)鏈接庫文件的擴(kuò)展名一般為*.dll,也可能是*.drv,*.sys或者*.fon第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)動態(tài)鏈接庫第7章LabVIE317.6調(diào)用動態(tài)鏈接庫(DLL)DLL和可執(zhí)行文件DLL和可執(zhí)行文件(EXE)很相似,最大的區(qū)別在于DLL雖然包含了可執(zhí)行代碼卻不能單獨(dú)執(zhí)行,必須由Windows應(yīng)用程序直接或間接調(diào)用第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)DLL和可執(zhí)行文件第7章La327.6調(diào)用動態(tài)鏈接庫(DLL)動態(tài)鏈接庫特點通用性DLL的編寫、生成與具體編譯器無關(guān)。使用較少的資源當(dāng)多個程序使用同一個函數(shù)庫時,DLL可以減少在磁盤和物理內(nèi)存中加載的代碼的重復(fù)量。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)動態(tài)鏈接庫特點第7章LabV337.6調(diào)用動態(tài)鏈接庫(DLL)共享代碼、資源和數(shù)據(jù)DLL中封裝了一些可以被共享的例程和資源,不僅包含可執(zhí)行的代碼,還有數(shù)據(jù)和各種資源。簡化部署和安裝當(dāng)DLL中的函數(shù)需要更新或修復(fù)時,部署和安裝DLL不要求重新建立程序與該DLL的鏈接。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)共享代碼、資源和數(shù)據(jù)第7章L347.6調(diào)用動態(tài)鏈接庫(DLL)DLL使用注意為了使應(yīng)用程序正常地使用動態(tài)鏈接庫,DLL文件必須存放在下列任意一個子目錄中:
Windows\system目錄中;
應(yīng)用程序所在的子目錄;
配置文件中定義的自動搜索的子目錄。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)DLL使用注意第7章LabV357.6調(diào)用動態(tài)鏈接庫(DLL)DLL與API應(yīng)用程序編程接口(ApplicationProgrammingInterface,API)是能用來操作組件、應(yīng)用程序或者操作系統(tǒng)的一組函數(shù)一般情況下,API指的是WindowsAPI,包括構(gòu)成Windows操作系統(tǒng)的各種DLL。每個Windows應(yīng)用程序都直接或間接地與WindowsAPI互動第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)DLL與API第7章LabV367.6調(diào)用動態(tài)鏈接庫(DLL)Windows中的API函數(shù)Windows的API函數(shù)位于Windows系統(tǒng)目錄下的多個DLL文件中,其中最基本的三個組成模塊如下:
Kernel32.dll:Windows系統(tǒng)核心32位API基礎(chǔ)庫,如內(nèi)存和文件管理;
Gdi32.dll:圖形設(shè)備接口庫,如顯示和打印等;
User32.dll:用戶接口庫,如鍵盤、鼠標(biāo)、聲音、系統(tǒng)時間等第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)Windows中的API函數(shù)377.6調(diào)用動態(tài)鏈接庫(DLL)調(diào)用DLLLabVIEW中動態(tài)鏈接庫的調(diào)用是通過調(diào)用庫函數(shù)(CallLibraryFunction,CLF)節(jié)點實現(xiàn)節(jié)點位置“函數(shù)→互連接口→庫與可執(zhí)行程序”選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)調(diào)用DLL第7章LabVIE387.6調(diào)用動態(tài)鏈接庫(DLL)配置CLF節(jié)點右鍵單擊節(jié)點并選擇“配置…”選項,或者直接雙擊節(jié)點第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)配置CLF節(jié)點第7章LabV397.6調(diào)用動態(tài)鏈接庫(DLL)配置DLL的“函數(shù)”、“參數(shù)”、“回調(diào)”和“錯誤檢查”具體步驟DLL“函數(shù)”頁數(shù)據(jù)類型配置注意第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)配置DLL的“函數(shù)”、“參數(shù)407.6調(diào)用動態(tài)鏈接庫(DLL)調(diào)用WindowsAPIAPI函數(shù)位于DLL文件中,所以在LabVIEW中調(diào)用API函數(shù)和調(diào)用DLL的方法基本一樣在函數(shù)配置時,需要把調(diào)用規(guī)范設(shè)置為stdcall(WINAPI)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)調(diào)用WindowsAPI第417.6調(diào)用動態(tài)鏈接庫(DLL)查詢當(dāng)前可用的物理內(nèi)存和虛擬內(nèi)存信息實例利用系統(tǒng)目錄下的User32.DLL庫中的API函數(shù)GlobalMemoryStatus()來獲得,函數(shù)聲明如下:VOIDGlobalMemoryStatus(LPMEMORYSTATUSlpBuffer);typedefstruct_MEMORYSTATUS{ //mstDWORDdwLength; //sizeof(MEMORYSTATUS)DWORDdwMemoryLoad; //percentofmemoryinuseDWORDdwTotalPhys; //bytesofphysicalmemoryDWORDdwAvailPhys; //freephysicalmemorybytesDWORDdwTotalPageFile; //bytesofpagingfileDWORDdwAvailPageFile; //freebytesofpagingfileDWORDdwTotalVirtual; //userbytesofaddressspaceDWORDdwAvailVirtual; //freeuserbytes}MEMORYSTATUS,*LPMEMORYSTATUS;第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)查詢當(dāng)前可用的物理內(nèi)存和虛擬427.6調(diào)用動態(tài)鏈接庫(DLL)程序框圖和運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)程序框圖和運(yùn)行結(jié)果第7章La437.7ActiveXActiveX是Microsoft推出的基于組件對象模型(ComponentObjectModel,COM)的一個技術(shù)集的統(tǒng)稱。它可實現(xiàn)代碼重用,并且與具體的編程語言無關(guān)。ActiveX的主要組成部分包括ActiveX自動化(Automation)、ActiveX控件(ActiveXControl)、ActiveX文檔(ActiveXDocuments)和ActiveX腳本(ActiveXScripting)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX是Microsoft推出447.7ActiveXActiveX自動化(Automation)ActiveX自動化是ActiveX最重要的功能之一,它可以使一個應(yīng)用程序通過ActiveX操縱另一個應(yīng)用程序的對象;并可以使一個應(yīng)用程序提供一些對象及對象的方法和屬性來允許另外一個應(yīng)用程序調(diào)用。LabVIEW既可以作ActiveX客戶端,又可以作ActiveX服務(wù)器。作為客戶端時,LabVIEW可以訪問現(xiàn)有的ActiveX對象來增強(qiáng)LabVIEW的功能,如訪問Excel、Web、Access等;作為服務(wù)器時,它允許其他程序訪問它提供的ActiveX自動化服務(wù),如調(diào)用VI、控制LabVIEW等第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX自動化(Automati457.7ActiveXActiveX相關(guān)函數(shù)位于“函數(shù)→互連接口→ActiveX”選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX相關(guān)函數(shù)位于“函數(shù)→互連467.7ActiveXActiveX主要函數(shù)功能
打開自動化:打開ActiveX對象,獲得對象的Reference;
關(guān)閉引用:關(guān)閉Reference;
轉(zhuǎn)換為變體:把LabVIEW數(shù)據(jù)轉(zhuǎn)換成變體型;
變體至數(shù)據(jù)轉(zhuǎn)換:把變體型數(shù)據(jù)轉(zhuǎn)換成LabVIEW數(shù)據(jù);
屬性節(jié)點:屬性節(jié)點,用于獲取或設(shè)置ActiveX對象的屬性;
調(diào)用節(jié)點:調(diào)用節(jié)點,用于調(diào)用ActiveX對象的方法;
事件回調(diào)注冊:處理ActiveX對象提供的事件;
取消注冊事件:關(guān)閉事件。
靜態(tài)VI引用:保持一個VI的靜態(tài)引用。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX主要函數(shù)功能第7章Lab477.7ActiveXActiveX容器利用LabVIEW的ActiveX容器,可以調(diào)用第三方提供的ActiveX控件,并訪問其屬性和方法,從而使程序功能更加豐富,界面更加友好,節(jié)省開發(fā)時間LabVIEW的ActiveX容器位于“控件→新式→容器”選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX容器第7章LabVIEW487.7ActiveXActiveX容器配置第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX容器配置第7章LabV497.7ActiveXActiveX事件(Events)類似于LabVIEW中的事件結(jié)構(gòu),當(dāng)ActiveX對象的事件發(fā)生時,就轉(zhuǎn)去執(zhí)行相應(yīng)的程序。在LabVIEW中,將ActiveX對象或.NET對象的事件稱為“回調(diào)事件”(Callback),事件發(fā)生時轉(zhuǎn)去執(zhí)行的VI稱為“回調(diào)VI”(CallbackVI)ActiveX事件,主要會用到兩個函數(shù):“注冊回調(diào)事件”(RegisterEventCallback)和“取消注冊事件”(UnregisterForEvents)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX事件(Events)第7507.7ActiveX應(yīng)用實例向MicrosoftOfficeWord寫數(shù)據(jù)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX應(yīng)用實例第7章LabVIEW調(diào)用操作系517.7ActiveX運(yùn)行結(jié)果通過添加新的屬性節(jié)點或方法節(jié)點,還可以實現(xiàn)更多的功能,如保存、插入圖片、打印等操作第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系527.7ActiveX對Excel進(jìn)行有效性操作第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX對Excel進(jìn)行有效性操作第7章Lab537.7ActiveX運(yùn)行結(jié)果通過MicrosoftExcel12.0ObjectLibrary提供的ExcelActiveX自動化對象,實現(xiàn)對Excel的操作,操作結(jié)果如下:第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系547.7ActiveXActiveX容器與ActiveX事件在前面板容器中插入MicrosoftOfficeSpreadsheet11.0控件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX容器與ActiveX事件557.7ActiveX注冊ActiveX事件創(chuàng)建回調(diào)VI第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX注冊ActiveX事件第7章LabVI567.7ActiveX主程序框圖和CallbackVI程序框圖第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX主程序框圖和CallbackVI程序577.7ActiveX程序運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX程序運(yùn)行結(jié)果第7章LabVIEW調(diào)用操587.8執(zhí)行系統(tǒng)命令在LabVIEW中還可以通過調(diào)用“執(zhí)行系統(tǒng)命令”(SystemExec.vi)函數(shù)直接運(yùn)行系統(tǒng)命令“執(zhí)行系統(tǒng)命令”位于“函數(shù)→互連接口→庫與可執(zhí)行程序”選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.8執(zhí)行系統(tǒng)命令在LabVIEW中還可以通過調(diào)用“執(zhí)行系597.8執(zhí)行系統(tǒng)命令執(zhí)行Ping15操作實例程序框圖第7章LabVIEW調(diào)用操作系統(tǒng)功能7.8執(zhí)行系統(tǒng)命令執(zhí)行Ping15607.8執(zhí)行系統(tǒng)命令運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系統(tǒng)功能7.8執(zhí)行系統(tǒng)命令運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系統(tǒng)617.8執(zhí)行系統(tǒng)命令打開文件實例調(diào)用一個文件的一般方法,只需要在“filenameandpath”路徑控件中設(shè)定文件的路徑即可。此種方法能打開*.txt、*.exe文件等第7章LabVIEW調(diào)用操作系統(tǒng)功能7.8執(zhí)行系統(tǒng)命令打開文件實例第7章LabVIEW調(diào)用操作627.8執(zhí)行系統(tǒng)命令把后綴名為*.CCMS的文件以記事本的方式打開第7章LabVIEW調(diào)用操作系統(tǒng)功能7.8執(zhí)行系統(tǒng)命令把后綴名為*.CCMS的文件以記事本的方637.8執(zhí)行系統(tǒng)命令有趣的自殺式應(yīng)用程序第7章LabVIEW調(diào)用操作系統(tǒng)功能7.8執(zhí)行系統(tǒng)命令有趣的自殺式應(yīng)用程序第7章LabVIEW647.8執(zhí)行系統(tǒng)命令之所以稱為“自殺”,是因為程序?qū)h除程序本身。程序首先在臨時目錄下生成一個批處理文件(*.bat),然后通過SystemExec.vi調(diào)用該批處理文件對自己進(jìn)行自殺式刪除。BAT文件的內(nèi)容為::begindel"E:\610工程\610Program\Run_Suicide.vi"ifexist"E:\610工程\610Program\Run_Suicide.vi"gotobegindel%0第7章LabVIEW調(diào)用操作系統(tǒng)功能7.8執(zhí)行系統(tǒng)命令之所以稱為“自殺”,是因為程序?qū)?5本章總結(jié)本章介紹了一些LabVIEW與其他應(yīng)用程序進(jìn)行交互的基本方式。任何一個應(yīng)用程序開發(fā)平臺都有其自身的優(yōu)勢與不足,LabVIEW也不例外。作為一個高級編程人員,為使項目更加完善,應(yīng)該熟練地綜合運(yùn)用其他軟件的功能,以彌補(bǔ)LabVIEW開發(fā)平臺的不足。第7章LabVIEW調(diào)用操作系統(tǒng)功能本章總結(jié)本章介紹了一些LabVIEW與其他66習(xí)題7-1簡述一下電子表格文件、XML文件及配置文件的應(yīng)用場合,以及各自的用法。7-2編寫程序,記錄最近一次運(yùn)行的配置參數(shù),并作為下次運(yùn)行的初始默認(rèn)值。嘗試使用幾種方法實現(xiàn),如讀/寫配置文件。7-3試編寫LabVIEW程序,查看操作系統(tǒng)安裝了哪些字體。(提示:操作系統(tǒng)安裝的字體可通過“控制面板→字體”或“系統(tǒng)根目錄\WINDOWS\Fonts”查看。)嘗試用幾種方法實現(xiàn),如讀注冊表信息。7-4調(diào)用WindowsAPI,獲取系統(tǒng)信息,如CPU的ID和數(shù)量、硬盤的ID等信息。第7章LabVIEW調(diào)用操作系統(tǒng)功能習(xí)題7-1簡述一下電子表格文件、XML文件及配置文件的應(yīng)67習(xí)題7-5學(xué)習(xí)本章7.7.4節(jié)中用ActiveX操作Word和Excel的實例,并編寫程序把新建的文檔存盤。7-6試著通過Access提供的ActiveX自動化對象訪問Access數(shù)據(jù)庫。習(xí)題中Exercise\7\ActiveX_Access.vi是一個獲得數(shù)據(jù)庫中所有表名的例子。同時,在LabVIEW中訪問數(shù)據(jù)庫還有另外幾種方法,如利用Microsoft的DAO(DataAccessObjects)、MicrosoftADO(ActiveXDataObjects),以及NI公司提供的免費(fèi)的、多數(shù)據(jù)庫、跨平臺的數(shù)據(jù)庫工具包LabSQL等。7-7通過ActiveX對象在LabVIEW中播放Flash、影音文件。第7章LabVIEW調(diào)用操作系統(tǒng)功能習(xí)題7-5學(xué)習(xí)本章7.7.4節(jié)中用ActiveX操作Wo68演講完畢,謝謝聽講!再見,seeyouagain3rew2022/11/5第7章LabVIEW調(diào)用操作系統(tǒng)功能演講完畢,謝謝聽講!再見,seeyouagain3rew69第7章LabVIEW調(diào)用操作系統(tǒng)功能2022/11/5第7章LabVIEW調(diào)用操作系統(tǒng)功能第7章LabVIEW調(diào)用操作系統(tǒng)功能2022/11/2第7章70引言任何一個應(yīng)用程序開發(fā)平臺都有其自身的優(yōu)勢與不足,LabVIEW也不例外。作為一個高級編程人員,在開發(fā)一個大的復(fù)雜應(yīng)用程序時必須能夠綜合應(yīng)用不同軟件開發(fā)平臺的功能,才能使項目更加完善。一個好的軟件開發(fā)環(huán)境,也必然具備與其他應(yīng)用程序的交互功能及必要的開發(fā)工具。本章將要講到的讀/寫電子表格文件、讀/寫XML文件、讀/寫配置文件、讀/寫系統(tǒng)注冊表、調(diào)用ActiveX控件、調(diào)用系統(tǒng)鏈接庫及調(diào)用命令行程序等都是LabVIEW與其他應(yīng)用程序的交互方式。第7章LabVIEW調(diào)用操作系統(tǒng)功能引言任何一個應(yīng)用程序開發(fā)平臺都有其自身的優(yōu)勢與不足,LabV71本章內(nèi)容7.1讀/寫電子表格文件7.2讀/寫XML文件7.3讀/寫配置文件7.4讀/寫系統(tǒng)注冊表7.5輸入設(shè)備控制7.6調(diào)用動態(tài)鏈接庫(DLL)7.7ActiveX7.8執(zhí)行系統(tǒng)命令第7章LabVIEW調(diào)用操作系統(tǒng)功能本章內(nèi)容7.1讀/寫電子表格文件第7章LabVIEW調(diào)用操727.1讀/寫電子表格文件LabVIEW文件操作基本步驟打開讀寫、操作關(guān)閉第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件LabVIEW文件操作基本步驟打開737.1讀/寫電子表格文件電子表格寫操作文件格式的要求保存電子表格格式文本文件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件電子表格寫操作第7章LabVIEW747.1讀/寫電子表格文件保存電子表格文件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件保存電子表格文件第7章LabVIE757.1讀/寫電子表格文件電子表格文本文件和電子表格文件生產(chǎn)結(jié)果第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件電子表格文本文件和電子表格文件生產(chǎn)767.1讀/寫電子表格文件電子表格讀操作數(shù)據(jù)讀取類型和格式第7章LabVIEW調(diào)用操作系統(tǒng)功能7.1讀/寫電子表格文件電子表格讀操作第7章LabVIEW777.2讀/寫XML文件可擴(kuò)展置標(biāo)語言(XML)可擴(kuò)展置標(biāo)語言(XML)是一種用標(biāo)記描述數(shù)據(jù)的格式化標(biāo)準(zhǔn)。與HTML標(biāo)記不同,XML標(biāo)記不是告訴瀏覽器如何按格式處理數(shù)據(jù),而是使瀏覽器能識別數(shù)據(jù)。例如為每本書創(chuàng)建一個XML文件<nonfiction><Title>TouringGermany'sGreatCathedrals</Title><Author>TonyWalters</Author><Publisher>DouglasDrivePublishing</Publisher><PriceUS>$29.99</PriceUS>……</nonfiction>第7章LabVIEW調(diào)用操作系統(tǒng)功能7.2讀/寫XML文件可擴(kuò)展置標(biāo)語言(XML)第7章Lab787.2讀/寫XML文件XML文件寫操作“平化至XML”(FlattenToXML)函數(shù)XML模版第7章LabVIEW調(diào)用操作系統(tǒng)功能7.2讀/寫XML文件XML文件寫操作第7章LabVIEW797.2讀/寫XML文件XML文件讀操作“從XML還原”(UnflattenFromXML)函數(shù)XML格式轉(zhuǎn)換成簇第7章LabVIEW調(diào)用操作系統(tǒng)功能7.2讀/寫XML文件XML文件讀操作第7章LabVIEW807.2讀/寫XML文件從XML文件中讀取數(shù)據(jù)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.2讀/寫XML文件從XML文件中讀取數(shù)據(jù)第7章LabV817.3讀/寫配置文件配置文件VI可讀取和創(chuàng)建標(biāo)準(zhǔn)的Windows配置文件,其標(biāo)準(zhǔn)擴(kuò)展名為.ini,但只要內(nèi)容格式正確,配置文件VI也可操作以任何擴(kuò)展名命名的文件。在.ini文件中,LabVIEW會將路徑數(shù)據(jù)保存為獨(dú)立于平臺的格式。例如絕對路徑/c/temp/data.dat解析為如下路徑:Windowsc:\temp\data.dat;MacOSc:temp:data.dat;Linux/c/temp/data.dat。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件配置文件VI可讀取和創(chuàng)建標(biāo)準(zhǔn)的Wind827.3讀/寫配置文件配置文件寫操作Windows配置文件標(biāo)準(zhǔn)格式生成名為“Configuration.ini”的配置文件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件配置文件寫操作第7章LabVIEW調(diào)用837.3讀/寫配置文件測試配置程序例程程序框圖第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件測試配置程序例程第7章LabVIEW調(diào)847.3讀/寫配置文件測試配置程序例程程序界面和生成文件第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件測試配置程序例程第7章LabVIEW調(diào)857.3讀/寫配置文件配置文件讀操作“讀取鍵值”(ReadKey.vi)函數(shù)讀取值數(shù)據(jù)類型設(shè)置第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件配置文件讀操作第7章LabVIEW調(diào)用867.3讀/寫配置文件測試配置程序例程初始化測試配置程序第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件測試配置程序例程第7章LabVIEW調(diào)877.3讀/寫配置文件測試配置程序例程讀取配置信息第7章LabVIEW調(diào)用操作系統(tǒng)功能7.3讀/寫配置文件測試配置程序例程第7章LabVIEW調(diào)887.4讀/寫系統(tǒng)注冊表所謂“注冊表”,實際上是一個龐大的數(shù)據(jù)庫,它包含了應(yīng)用程序和系統(tǒng)軟硬件的全部配置信息,這里所指的注冊表僅針對于Windows操作系統(tǒng)。注冊表系統(tǒng)組成和注冊表結(jié)構(gòu)本節(jié)首先以LabVIEW自帶的三個例子,說明在LabVIEW中讀/寫注冊表的一般方法,然后講解自動配置ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)互連)數(shù)據(jù)源的應(yīng)用實例。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表所謂“注冊表”,實際上是一個龐大的數(shù)897.4讀/寫系統(tǒng)注冊表注冊表寫操作創(chuàng)建注冊表項第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表注冊表寫操作第7章LabVIEW調(diào)用907.4讀/寫系統(tǒng)注冊表程序運(yùn)行結(jié)果WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\MyKey]"MyString"="LabVIEW""MyBinary"=hex:03,02,01,00"MyDWORD"=dword:00000100第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表程序運(yùn)行結(jié)果第7章LabVIEW調(diào)用917.4讀/寫系統(tǒng)注冊表注冊表讀操作第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表注冊表讀操作第7章LabVIEW調(diào)用927.4讀/寫系統(tǒng)注冊表注冊表刪除操作第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表注冊表刪除操作第7章LabVIEW調(diào)937.4讀/寫系統(tǒng)注冊表自動配置ODBC數(shù)據(jù)源ODBC是微軟開發(fā)的服務(wù)結(jié)構(gòu)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API。在應(yīng)用程序開發(fā)中用到數(shù)據(jù)庫時,需要手動配置ODBC數(shù)據(jù)源。一旦相關(guān)的文件路徑發(fā)生改變,則需要再次手動配置,這給最終用戶帶來了極大的不便。將與手動配置相似的注冊表信息寫到注冊表中,實現(xiàn)ODBC數(shù)據(jù)源的自動配置第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表自動配置ODBC數(shù)據(jù)源第7章LabV947.4讀/寫系統(tǒng)注冊表LabVIEW中實現(xiàn)為應(yīng)用程序自動地配置ODBC數(shù)據(jù)源第7章LabVIEW調(diào)用操作系統(tǒng)功能7.4讀/寫系統(tǒng)注冊表LabVIEW中實現(xiàn)為應(yīng)用程序自動地957.5輸入設(shè)備控制用來獲取連接到計算機(jī)上的操縱桿、鍵盤和鼠標(biāo)的信息輸入設(shè)備控制VI位于“函數(shù)→互連接口→輸入設(shè)備控制”子選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.5輸入設(shè)備控制用來獲取連接到計算機(jī)上的操縱桿、鍵盤和鼠967.5輸入設(shè)備控制實時獲取鼠標(biāo)鍵盤信息例程首先通過“查詢輸入設(shè)備”(QueryInputDevices.vi)查詢按鍵和鼠標(biāo)的信息分別初始化鍵盤和鼠標(biāo)在While循環(huán)中獲取鍵盤按鍵信息和鼠標(biāo)位置及點擊信息關(guān)閉輸入設(shè)備第7章LabVIEW調(diào)用操作系統(tǒng)功能7.5輸入設(shè)備控制實時獲取鼠標(biāo)鍵盤信息例程第7章LabVI977.5輸入設(shè)備控制程序框圖第7章LabVIEW調(diào)用操作系統(tǒng)功能7.5輸入設(shè)備控制程序框圖第7章LabVIEW調(diào)用操作系統(tǒng)987.5輸入設(shè)備控制程序界面第7章LabVIEW調(diào)用操作系統(tǒng)功能7.5輸入設(shè)備控制程序界面第7章LabVIEW調(diào)用操作系統(tǒng)997.6調(diào)用動態(tài)鏈接庫(DLL)動態(tài)鏈接庫動態(tài)鏈接庫(DynamicLinkLibrary,DLL)是一個可以多方共享的程序模塊,內(nèi)部對共享的例程和資源進(jìn)行了封裝。動態(tài)鏈接庫文件的擴(kuò)展名一般為*.dll,也可能是*.drv,*.sys或者*.fon第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)動態(tài)鏈接庫第7章LabVIE1007.6調(diào)用動態(tài)鏈接庫(DLL)DLL和可執(zhí)行文件DLL和可執(zhí)行文件(EXE)很相似,最大的區(qū)別在于DLL雖然包含了可執(zhí)行代碼卻不能單獨(dú)執(zhí)行,必須由Windows應(yīng)用程序直接或間接調(diào)用第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)DLL和可執(zhí)行文件第7章La1017.6調(diào)用動態(tài)鏈接庫(DLL)動態(tài)鏈接庫特點通用性DLL的編寫、生成與具體編譯器無關(guān)。使用較少的資源當(dāng)多個程序使用同一個函數(shù)庫時,DLL可以減少在磁盤和物理內(nèi)存中加載的代碼的重復(fù)量。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)動態(tài)鏈接庫特點第7章LabV1027.6調(diào)用動態(tài)鏈接庫(DLL)共享代碼、資源和數(shù)據(jù)DLL中封裝了一些可以被共享的例程和資源,不僅包含可執(zhí)行的代碼,還有數(shù)據(jù)和各種資源。簡化部署和安裝當(dāng)DLL中的函數(shù)需要更新或修復(fù)時,部署和安裝DLL不要求重新建立程序與該DLL的鏈接。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)共享代碼、資源和數(shù)據(jù)第7章L1037.6調(diào)用動態(tài)鏈接庫(DLL)DLL使用注意為了使應(yīng)用程序正常地使用動態(tài)鏈接庫,DLL文件必須存放在下列任意一個子目錄中:
Windows\system目錄中;
應(yīng)用程序所在的子目錄;
配置文件中定義的自動搜索的子目錄。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)DLL使用注意第7章LabV1047.6調(diào)用動態(tài)鏈接庫(DLL)DLL與API應(yīng)用程序編程接口(ApplicationProgrammingInterface,API)是能用來操作組件、應(yīng)用程序或者操作系統(tǒng)的一組函數(shù)一般情況下,API指的是WindowsAPI,包括構(gòu)成Windows操作系統(tǒng)的各種DLL。每個Windows應(yīng)用程序都直接或間接地與WindowsAPI互動第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)DLL與API第7章LabV1057.6調(diào)用動態(tài)鏈接庫(DLL)Windows中的API函數(shù)Windows的API函數(shù)位于Windows系統(tǒng)目錄下的多個DLL文件中,其中最基本的三個組成模塊如下:
Kernel32.dll:Windows系統(tǒng)核心32位API基礎(chǔ)庫,如內(nèi)存和文件管理;
Gdi32.dll:圖形設(shè)備接口庫,如顯示和打印等;
User32.dll:用戶接口庫,如鍵盤、鼠標(biāo)、聲音、系統(tǒng)時間等第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)Windows中的API函數(shù)1067.6調(diào)用動態(tài)鏈接庫(DLL)調(diào)用DLLLabVIEW中動態(tài)鏈接庫的調(diào)用是通過調(diào)用庫函數(shù)(CallLibraryFunction,CLF)節(jié)點實現(xiàn)節(jié)點位置“函數(shù)→互連接口→庫與可執(zhí)行程序”選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)調(diào)用DLL第7章LabVIE1077.6調(diào)用動態(tài)鏈接庫(DLL)配置CLF節(jié)點右鍵單擊節(jié)點并選擇“配置…”選項,或者直接雙擊節(jié)點第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)配置CLF節(jié)點第7章LabV1087.6調(diào)用動態(tài)鏈接庫(DLL)配置DLL的“函數(shù)”、“參數(shù)”、“回調(diào)”和“錯誤檢查”具體步驟DLL“函數(shù)”頁數(shù)據(jù)類型配置注意第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)配置DLL的“函數(shù)”、“參數(shù)1097.6調(diào)用動態(tài)鏈接庫(DLL)調(diào)用WindowsAPIAPI函數(shù)位于DLL文件中,所以在LabVIEW中調(diào)用API函數(shù)和調(diào)用DLL的方法基本一樣在函數(shù)配置時,需要把調(diào)用規(guī)范設(shè)置為stdcall(WINAPI)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)調(diào)用WindowsAPI第1107.6調(diào)用動態(tài)鏈接庫(DLL)查詢當(dāng)前可用的物理內(nèi)存和虛擬內(nèi)存信息實例利用系統(tǒng)目錄下的User32.DLL庫中的API函數(shù)GlobalMemoryStatus()來獲得,函數(shù)聲明如下:VOIDGlobalMemoryStatus(LPMEMORYSTATUSlpBuffer);typedefstruct_MEMORYSTATUS{ //mstDWORDdwLength; //sizeof(MEMORYSTATUS)DWORDdwMemoryLoad; //percentofmemoryinuseDWORDdwTotalPhys; //bytesofphysicalmemoryDWORDdwAvailPhys; //freephysicalmemorybytesDWORDdwTotalPageFile; //bytesofpagingfileDWORDdwAvailPageFile; //freebytesofpagingfileDWORDdwTotalVirtual; //userbytesofaddressspaceDWORDdwAvailVirtual; //freeuserbytes}MEMORYSTATUS,*LPMEMORYSTATUS;第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)查詢當(dāng)前可用的物理內(nèi)存和虛擬1117.6調(diào)用動態(tài)鏈接庫(DLL)程序框圖和運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系統(tǒng)功能7.6調(diào)用動態(tài)鏈接庫(DLL)程序框圖和運(yùn)行結(jié)果第7章La1127.7ActiveXActiveX是Microsoft推出的基于組件對象模型(ComponentObjectModel,COM)的一個技術(shù)集的統(tǒng)稱。它可實現(xiàn)代碼重用,并且與具體的編程語言無關(guān)。ActiveX的主要組成部分包括ActiveX自動化(Automation)、ActiveX控件(ActiveXControl)、ActiveX文檔(ActiveXDocuments)和ActiveX腳本(ActiveXScripting)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX是Microsoft推出1137.7ActiveXActiveX自動化(Automation)ActiveX自動化是ActiveX最重要的功能之一,它可以使一個應(yīng)用程序通過ActiveX操縱另一個應(yīng)用程序的對象;并可以使一個應(yīng)用程序提供一些對象及對象的方法和屬性來允許另外一個應(yīng)用程序調(diào)用。LabVIEW既可以作ActiveX客戶端,又可以作ActiveX服務(wù)器。作為客戶端時,LabVIEW可以訪問現(xiàn)有的ActiveX對象來增強(qiáng)LabVIEW的功能,如訪問Excel、Web、Access等;作為服務(wù)器時,它允許其他程序訪問它提供的ActiveX自動化服務(wù),如調(diào)用VI、控制LabVIEW等第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX自動化(Automati1147.7ActiveXActiveX相關(guān)函數(shù)位于“函數(shù)→互連接口→ActiveX”選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX相關(guān)函數(shù)位于“函數(shù)→互連1157.7ActiveXActiveX主要函數(shù)功能
打開自動化:打開ActiveX對象,獲得對象的Reference;
關(guān)閉引用:關(guān)閉Reference;
轉(zhuǎn)換為變體:把LabVIEW數(shù)據(jù)轉(zhuǎn)換成變體型;
變體至數(shù)據(jù)轉(zhuǎn)換:把變體型數(shù)據(jù)轉(zhuǎn)換成LabVIEW數(shù)據(jù);
屬性節(jié)點:屬性節(jié)點,用于獲取或設(shè)置ActiveX對象的屬性;
調(diào)用節(jié)點:調(diào)用節(jié)點,用于調(diào)用ActiveX對象的方法;
事件回調(diào)注冊:處理ActiveX對象提供的事件;
取消注冊事件:關(guān)閉事件。
靜態(tài)VI引用:保持一個VI的靜態(tài)引用。第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX主要函數(shù)功能第7章Lab1167.7ActiveXActiveX容器利用LabVIEW的ActiveX容器,可以調(diào)用第三方提供的ActiveX控件,并訪問其屬性和方法,從而使程序功能更加豐富,界面更加友好,節(jié)省開發(fā)時間LabVIEW的ActiveX容器位于“控件→新式→容器”選板第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX容器第7章LabVIEW1177.7ActiveXActiveX容器配置第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX容器配置第7章LabV1187.7ActiveXActiveX事件(Events)類似于LabVIEW中的事件結(jié)構(gòu),當(dāng)ActiveX對象的事件發(fā)生時,就轉(zhuǎn)去執(zhí)行相應(yīng)的程序。在LabVIEW中,將ActiveX對象或.NET對象的事件稱為“回調(diào)事件”(Callback),事件發(fā)生時轉(zhuǎn)去執(zhí)行的VI稱為“回調(diào)VI”(CallbackVI)ActiveX事件,主要會用到兩個函數(shù):“注冊回調(diào)事件”(RegisterEventCallback)和“取消注冊事件”(UnregisterForEvents)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveXActiveX事件(Events)第71197.7ActiveX應(yīng)用實例向MicrosoftOfficeWord寫數(shù)據(jù)第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX應(yīng)用實例第7章LabVIEW調(diào)用操作系1207.7ActiveX運(yùn)行結(jié)果通過添加新的屬性節(jié)點或方法節(jié)點,還可以實現(xiàn)更多的功能,如保存、插入圖片、打印等操作第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系1217.7ActiveX對Excel進(jìn)行有效性操作第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX對Excel進(jìn)行有效性操作第7章Lab1227.7ActiveX運(yùn)行結(jié)果通過MicrosoftExcel12.0ObjectLibrary提供的ExcelActiveX自動化對象,實現(xiàn)對Excel的操作,操作結(jié)果如下:第7章LabVIEW調(diào)用操作系統(tǒng)功能7.7ActiveX運(yùn)行結(jié)果第7章LabVIEW調(diào)用操作系1237.7ActiveXActiveX容器與ActiveX事件在前面板容器中插入MicrosoftOfficeSpreadsheet11.0控件第7章LabVI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租土地建設(shè)合同范例
- 勞務(wù)派工合同范例
- 臥式制氧機(jī)采購合同范例
- qiche購銷合同范例
- 合同范例 易法通
- 外貿(mào)樣品單合同范例
- 個體技術(shù)入股合同范例
- 代理合同范例(標(biāo)準(zhǔn))
- 保量合作合同范例
- 商務(wù)合作起草合同范例
- 注塑車間平面規(guī)劃圖OK
- 商戶洽談記錄表
- 鎮(zhèn)衛(wèi)生院績效考核方案
- 9.2+積極投身創(chuàng)新實踐(高效教案)-【中職專用】中職思想政治《哲學(xué)與人生》(高教版2023基礎(chǔ)模塊)
- 【高中語文】《邏輯的力量》課件+統(tǒng)編版++選擇性必修上冊
- 生態(tài)文明-撐起美麗中國夢學(xué)習(xí)通章節(jié)答案期末考試題庫2023年
- 傳染病報告卡
- 項目物資管理員培訓(xùn)交底總結(jié)
- 習(xí)近平總書記關(guān)于教育的重要論述研究(安慶師范大學(xué)版)學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 法院訴訟指定監(jiān)護(hù)人申請書
- 類風(fēng)濕性關(guān)節(jié)炎綜述4572
評論
0/150
提交評論