成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > VBS技術(shù)內(nèi)幕:CreateObject函數(shù)詳解

VBS技術(shù)內(nèi)幕:CreateObject函數(shù)詳解

熱門標簽:齊齊哈爾高德地圖標注店 佛山真人電銷機器人廠家 哪里有便宜的地圖標注公司 神行者美術(shù)館地圖標注 地圖標注政府哪個部門管 如何用機器人進行電銷 百度地圖標注點距離代碼 除了地圖標注還有這種生意嗎 東營快遞外呼系統(tǒng)

曾經(jīng)我也不明白為什么在CreateObject函數(shù)中傳遞不同的字符串就可以創(chuàng)建各種各樣功能強大的對象。后來無意中看到UMU的《[UMU WSH 教程](9)CreateObject 過程》,才知道CreateObject函數(shù)創(chuàng)建的是COM對象,第一個參數(shù)是COM對象的ProgID。再后來拜讀了Jeff Glatt的《COM in plain C》,知道了如何用純C語言編寫COM組件。

COM(組件對象模型)是一個很復雜的概念,需要用磚頭那么厚的書才能講得清楚,而且沒有C++和面向?qū)ο缶幊瘫尘暗脑捄茈y理解,比較經(jīng)典的書有《COM原理與應用》、《COM技術(shù)內(nèi)幕》和《COM本質(zhì)論》,不過貌似都絕版了。

當然,作為VBSer,我們不需要去理解COM的原理或者本質(zhì)。簡單的說,COM就是別人寫好的模塊,我們要做的僅僅是調(diào)用它,而不必關(guān)心它的內(nèi)部實現(xiàn),這也是COM技術(shù)的一個初衷。ProgID可以認為是開發(fā)人員為COM對象起的一個名字,我們把COM對象的名字傳遞給CreateObject函數(shù),告訴它我們想創(chuàng)建這個對象,CreateObject函數(shù)就會返回這個對象的指針給你。

例如我可以(當然,你也可以)用VB來編寫一個COM組件,然后給它起個名字demon.tw,那么注冊該COM組件之后,就可以用CreateObject函數(shù)來創(chuàng)建了:

Set blog = CreateObject("demon.tw")
blog.Open '假設我的COM對象實現(xiàn)了Open方法

我們常用的Scripting.FileSystemObject、WScript.Shell、ADODB.Stream等只不過是微軟開發(fā)的系統(tǒng)自帶的COM對象的名字罷了。

那么CreateObject函數(shù)是如何創(chuàng)建對象的呢?用OllyDbg跟了一下,核心的代碼大概可以分成四步:

第一步調(diào)用CLSIDFromProgIDEx從ProgID獲取對應的CLSID,如果找不到對應的CLSID,就會報錯“ActiveX 部件不能創(chuàng)建對象”。

我們可以用注冊表編輯器手工查找CLSID。例如要獲取WScript.Shell的CLSID,用注冊表編輯器查找HKEY_CLASSES_ROOT\WScript.Shell\CLSID的值即可。需要注意的是,《[UMU WSH 教程](9)CreateObject 過程》里說:

1、CreateObject 函數(shù)先檢查注冊表 HKEY_CLASSES_ROOT\WScript.Shell 下的子鍵 CurVer 的默認值,結(jié)果為 WScript.Shell.1,所以知道最新版本是 WScript.Shell.1;

2、讀 HKEY_CLASSES_ROOT\WScript.Shell.1,下面有一個子鍵 CLSID,默認值為 {72C24DD5-D70A-438B-8A42-98424B88AFB8};

這是錯誤的,CreateObject函數(shù)(準確的說是其內(nèi)部調(diào)用的CLSIDFromProgIDEx函數(shù))先檢查注冊表子鍵 HKEY_CLASSES_ROOT\WScript.Shell\CLSID是否存在,只要子鍵存在,即使默認值為空或者不是類標識符,都不會再檢查子鍵CurVer ,只有CLSID子鍵不存在,才會檢查子鍵 CurVer。

第二步調(diào)用CoGetClassObject函數(shù)獲取IClassFactory接口的指針,如果獲取不到,報錯“ActiveX 部件不能創(chuàng)建對象”或者“類不支持 Automation 操作”,也可能是其他錯誤信息,這取決于COM的實現(xiàn)。

第三步調(diào)用IClassFactory接口的CreateInstance方法獲取IUnknown接口指針,所有的COM都必須支持IUnknown接口,所以這步應該不會出錯。

最后調(diào)用IUnknown接口的QueryInterface方法查詢該COM是非支持IDispatch接口,只有支持IDispatch接口的COM類才能用CreateObject創(chuàng)建對象。如果獲取到IDispatch接口的指針,就可以給VARIANT變量賦值了;如果不支持IDispatch接口,報錯“類不支持 Automation 操作”,也可能是其他錯誤信息,取決于具體實現(xiàn)。

說了半天還是沒有說到一個關(guān)鍵的問題:VBS到底能調(diào)用哪些對象?或者說,哪些字符串可以作為CreateObject函數(shù)的第一個參數(shù)?欲知問題答案,請聽下回分解。

VBS深入CreateObject函數(shù)

本篇要講的是對象的創(chuàng)建,屬于 COM 的內(nèi)容,這里不可能說太多,大家可以找一些 COM 的書看看,也可以看看 UMU 的其他關(guān)于 COM 的文章:《ATL 體驗》、《基于 WebBrowser 的新型應用程序研究小記》、《學習 ATL 的理由》、《關(guān)于 COM 的幾個概念問題》、《關(guān)于 COM 的幾個概念問題(2)》。最常見的對象有:WScript.Shell、Scripting.FileSystemObject、Scripting.Dictionary 等,這里以 WScript.Shell 為例。


馬上來看對象的創(chuàng)建過程,語句 Set objWSH = CreateObject( "WScript.Shell" ):

1、CreateObject 函數(shù)先檢查注冊表 HKEY_CLASSES_ROOT\WScript.Shell 下的子鍵 CurVer 的默認值,結(jié)果為 WScript.Shell.1,所以知道最新版本是 WScript.Shell.1;

2、讀 HKEY_CLASSES_ROOT\WScript.Shell.1,下面有一個子鍵 CLSID,默認值為 {72C24DD5-D70A-438B-8A42-98424B88AFB8};

3、找到了 HKEY_CLASSES_ROOT\CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8},子鍵 InProcServer32 的默認值說明服務程序是 C:\WINDOWS\system32\wshom.ocx。

4、對于腳本可以調(diào)用的 COM 對象,要使用對象里的方法 TypeLib 是必要的,HKEY_CLASSES_ROOT\CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8} \TypeLib 的默認值是 {F935DC20-1CF0-11D0-ADB9-00C04FD58A0B},HKEY_CLASSES_ROOT\TypeLib \{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}\1.0\0\win32 的默認值說明類型庫是 C:\WINDOWS\system32\wshom.ocx。

支持腳本調(diào)用的 COM 對象必然要實現(xiàn) IDispatch 接口,可以從 C:\WINDOWS\system32\wshom.ocx 的“資源 – TYPELIB”里看出來,每個對象開頭的 7 個函數(shù)都是 QueryInterface、AddRef、Release、GetTypeInfoCount、GetTypeInfo、 GetIDsOfNames、Invoke,前 3 個是 IUnknown 接口的函數(shù)。PE 文件里的 TYPELIB 資源是 *.idl 源碼文件編譯后的類型庫的二進制數(shù)據(jù),可以反編譯回去。不過 UMU 推薦使用 eXeScope 查看,即使用 eXeScope 打開 C:\WINDOWS\system32\wshom.ocx,查看“資源 – TYPELIB”,可以看出每個接口函數(shù)的參數(shù)和返回值定義。

VB 開發(fā)環(huán)境就是這樣知道對象里有什么函數(shù)的。所以,如果我們知道一個對象名,卻不知道這個對象里有什么函數(shù),可以用上面說的方法獲得。

xuejinglan 于 2007年03月31日 星期六 11:40 問 UMU 這樣一個問題:“系統(tǒng)中存在哪些對象,對象有那些函數(shù)可以調(diào)用,如何知道?”這個問題已經(jīng)回答后一半了,下面回答前一半。

對象的注冊信息 HKEY_CLASSES_ROOT\CLSID\{GUID} 下可能會有這樣的一些子鍵:Control 說明該組件是一個 ActiveX 控件、Programmable 說明該組件支持自動化、Insertable 說明該組件可以被嵌入到一個 OLE 文檔容器中。能找到 Programmable,說明支持自動化,也就是支持 IDispatch 接口,所以它可以被腳本語言使用。不過這種方式比較老了,現(xiàn)在已經(jīng)被一個的組件類屬代替,即 Implemented Categories 子鍵下面的 GUID 形式的子鍵。比如 HKEY_CLASSES_ROOT\CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8}\Implemented Categories\{40FC6ED5-2438-11CF-A3DB-080036F12502},看一下 HKEY_CLASSES_ROOT\Component Categories\{40FC6ED5-2438-11CF-A3DB-080036F12502} 下的 409 字符串值為 Automation Objects,也就是“自動化對象”。

查找“自動化對象”可以使用 VS 帶的工具 oleview.exe,它專門用來查看 OLE/COM 對象的注冊信息,界面如下圖:

人民群眾可能有點頭暈了,總結(jié)一下:組件類屬為 {40FC6ED5-2438-11CF-A3DB-080036F12502}(Automation Objects) 的對象都支持被腳本調(diào)用。

接下去的創(chuàng)建過程不屬于腳本應該考慮的范圍,有興趣學 COM 的話可以研究研究,很好的一個機制,值得學習。標題: VBS技術(shù)內(nèi)幕:CreateObject函數(shù)
作者: Demon
鏈接: http://demon.tw/reverse/vbscript-internal-createobject.html

標簽:四平 鶴壁 銅川 湖州 西安 邢臺 文山 巨人網(wǎng)絡通訊聲明:本文標題《VBS技術(shù)內(nèi)幕:CreateObject函數(shù)詳解》,本文關(guān)鍵詞  VBS,技術(shù),內(nèi)幕,CreateObject,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。

  • 相關(guān)文章
  • 下面列出與本文章《VBS技術(shù)內(nèi)幕:CreateObject函數(shù)詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于VBS技術(shù)內(nèi)幕:CreateObject函數(shù)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    黄黄的网站在线观看| 日韩精品免费播放| 欧美大片免费观看在线观看网站推荐| 欧美一区二区三区……| 亚洲av无码一区东京热久久| 国产精品久久久久久久久动漫| 91在线免费看网站| 国产福利精品一区| 99国产盗摄| 国产精品乱码一区二区视频| 我的公把我弄高潮了视频| 成人一级片在线观看| 成人国产亚洲欧美成人综合网| 岳乳丰满一区二区三区| 国产免费a∨片在线观看不卡| 久久久久国产成人精品亚洲午夜| 午夜激情在线播放| 欧美日本一区二区在线观看| 日韩电影在线观看永久视频免费网站| 男人和女人做事情在线视频网站免费观看| 99免在线观看免费视频高清| 一级欧洲+日本+国产| 国产一级免费黄色片| 精品国产免费人成网站| 2014国产精品| 国产精品久久乐| 日韩伦理一区二区三区| 青青草国产成人a∨下载安卓| 日韩电影一二三区| 亚洲天堂资源| 国产成人精品无码片区在线| 麻豆av免费在线观看| 美国av免费观看| 精品日产免费二区日产免费二区| 亚洲一区免费看| 97成人资源站| 国产一区二区色| 蜜桃视频www网站在线观看| 日本午夜大片a在线观看| 小h片在线观看| 91精品国偷自产在线电影| 欧美日韩一卡二卡三卡| 欧美日韩国产123| 五月天色婷婷综合| 亚洲欧洲一区二区三区久久| 99九九精品视频| 在线免费观看的av网站| 欧美黑人性猛交xxx| 国产一区二区三区av电影| 亚洲欧洲一级| 国产视频一区二区三区在线观看| 欧美第一页浮力影院| 欧美精品色视频| 天天干天天插天天射| 自拍一级黄色片| 超污黄色软件| 久久一区二区三区喷水| 导航艳情国产电影| 乱熟女高潮一区二区在线| 国产欧美一区二区三区视频| 欧美性猛交xxxxx水多| 日本五十熟hd丰满| 一个人看的www视频在线免费观看| 七七成人影院| 99国产精品久久久久久| 国产成人在线视频播放| 在线观看91精品国产入口| 国产精品77777| 能看av的网址| 色999日韩国产欧美一区二区| 国产美女做爰免费视频软件| 日韩精品自拍偷拍| 可以直接看的黄色网址| 在线视频免费观看一区| 人人爽人人爽人人片| 午夜视频在线观看国产| 国产永久免费视频| 亚洲视频在线观看一区二区三区| 91高清免费在线观看| 久热精品视频在线观看一区| 最新黄色网址在线观看| 校园春色 亚洲| 91在线视频国产| 91精品麻豆日日躁夜夜躁| h网站免费看| 亚洲图片欧美一区| 丰满少妇一级片| 都市激情一区| 亚洲精品少妇| bt天堂新版中文在线地址| 狂野欧美性猛交xxxxx视频| 午夜精品福利视频网站| 久草在线中文888| 欧美电影院免费观看| 鲁一鲁一鲁一鲁一澡| 日韩综合另类| 亚洲精品欧洲| 99久久久无码国产精品性| 一区二区三区在线观看免费视频| 欧美日韩国产页| 欧美国产激情| 国产精品久久久久婷婷二区次| 成人线上视频| 日本10禁啪啪无遮挡免费一区二区| 欧美日韩视频在线第一区| 国产精品久久国产精品| 亚洲国产天堂久久国产91| 狠狠色丁香婷婷综合| 国产激情视频一区二区三区欧美| av男人天堂一区| 亚洲精品一区av在线播放| 日韩精品专区在线影院重磅| 久久电影国产免费久久电影| 亚洲欧洲日本在线| 岛国大片在线观看| 国产精品久久一卡二卡| 又色又爽的视频| 精品国产人成亚洲区| 亚洲欧美在线网| 99久久免费国产精精品| eeuss影院www在线| 成人看av片| 蜜臀久久久99精品久久久久久| 四虎影院中文字幕| 欧美日产一区二区三区在线观看| 国产伦精品一区二区三区精品视频| 三上悠亚在线一区二区| 91玉足脚交白嫩脚丫| 欧美激情中文字幕一区二区| 国产无人区码熟妇毛片多| 欧美日韩国产综合网| 国产999精品久久久影片官网| 成年人视频在线| 国产最新在线| 尤物视频在线观看视频| 国产乱子伦精品| 自拍偷拍一区二区三区四区| 国产精品人成在线观看免费| 免看一级a毛片一片成人不卡| 欧美一区二区三区在线观看视频| 精品久久在线观看| 国产一区视频网站| 国产一级片免费| 国产精品久久久久9999| 欧美少妇激情| 精品一区二区在线免费观看| 波多野结衣视频在线观看| 亚洲四虎av| 高清国产午夜精品久久久久久| 亚洲乱码一区二区三区三上悠亚| 九九热在线视频观看这里只有精品| 亚洲高清资源在线观看| 国产精品a久久久久| 国产一级特黄a高潮片| 按摩亚洲人久久| 日韩亚洲欧美一区二区三区| 欧美与亚洲与日本直播| 蜜臀av一级做a爰片久久| 亚洲丝袜美腿综合| 国产精品国产自产拍高清av水多| 天天色天天爱天天射综合| 国产情侣呻吟对白高潮| 亚洲天堂成人在线观看| 久久精品国语| 一区二区三区国产精华| 精品国产91洋老外米糕| 色综合久久中文综合久久牛| 天堂在线观看av| 第一页在线观看| www黄色av| 日本fc2在线观看| 日韩免费一区二区三区| 亚洲精品男人| 国产911网站| 国产超碰精品在线观看| 国产视频久久网| 精品国产伦一区二区三区免费| 久久久久久欧美精品色一二三四| 痴汉一区二区三区| 亚洲欧美日韩在线播放| 色噜噜成人av在线| 亚洲精品不卡在线观看| 91亚洲精品在看在线观看高清| 成人毛片视频在线观看| 二区中文字幕| 国产一区二区不卡视频在线观看| 久久久久久九九| 一本色道亚洲精品aⅴ| 国产精品人人爽| 网站免费满18成年在线观看| 美女视频a黄免费| 丝袜连裤袜欧美激情日韩| 天堂午夜在线| 亚洲色成人www永久在线观看| 亚洲丝袜av一区| 在线视频精品一区| 国产成人短视频在线观看| 中文字幕五月欧美| 久草在在线视频| 色欧美片视频在线观看在线视频| 国产曰肥老太婆无遮挡| 青青草97国产精品麻豆| 成人自拍视频网站| 久久综合狠狠| 久久视频www| 国产人妻人伦精品| 大尺度一区二区| 51久久夜色精品国产麻豆| 久久国产精品一区二区三区| 天堂视频免费在线观看| 国内成人自拍视频| а√最新版在线天堂| 国产成人欧美日韩在线电影| 亚洲国产成人va在线观看天堂| 国产精品精品软件视频| 亚洲精品在线观看网站| 久久免费视频精品| 欧美大片在线观看一区| 亚洲国产精品一区二区第四页av| 欧美aaa在线| 国产精品久久久久一区二区三区| 99re在线观看| 国产又粗又硬视频| 亚洲国产精品字幕| 欧美刺激脚交jootjob| 日本暖暖在线视频| 久久99精品久久久久久青青日本| 国产精品原创视频| 欧美在线网站| 亚洲精品国产精| 国产综合激情| 久久久久久久久久久妇女| 先锋影音男人站你懂得| 秋霞国产午夜精品免费视频| 色综合色综合色综合色综合色综合| 精品国产31久久久久久| 国产精品久久视频| 无码人妻一区二区三区精品视频| 中文久久乱码一区二区| 99视频精品全部免费在线| 亚洲资源在线观看| 成人欧美一区二区三区黑人| 噜噜噜躁狠狠躁狠狠精品视频| 三级av在线| 三级毛片电影网站| 久久成人在线观看| 亚洲无线码在线一区观看| 一本色道久久99精品综合| 久久成人国产精品| 国产精品久久久久av蜜臀| 99国产精品久久久久老师| 国产偷国产偷亚洲高清97cao| 日本一区二区三区在线不卡| 久久精品第九区免费观看| 精品乱码亚洲一区二区不卡| 亚洲第一av网站| 欧美熟妇另类久久久久久不卡| 国产一区二区日韩精品| 在线观看v片| 1区2区3区精品视频| 国产自产视频| 91美女福利视频高清| 欧美视频在线一区二区三区| 欧美日韩一区在线视频| 最近2019好看的中文字幕免费| 18啪啪污污免费网站| 日韩一区二区三区免费看| 免费不卡在线观看| 婷婷久久青草热一区二区| 都市激情亚洲欧美| 国产精品丝袜久久久久久不卡| 精品一区二区三区亚洲| japanese在线观看| caopor在线视频| 色一情一区二区三区四区| 在线视频一区二区三区| 欧美精品日韩| 日本中文视频| 国内精品免费**视频| youjizz亚洲女人| 欧美一区二区三区观看| 日韩a在线播放| 亚洲日本无吗高清不卡| 精品国产乱码久久久久夜深人妻| 人人爽久久涩噜噜噜网站| 色一情一乱一区二区| 精品欧美黑人一区二区三区| 国产成人av一区二区三区不卡| 国产在线欧美日韩| 丝袜美腿综合| 成人a在线观看高清电影| 欧美做受高潮6| 91成人在线观看喷潮蘑菇| 免费成人美女女在线观看| 91中文字幕在线| 国产在线不卡一区| 日本高清不卡在线观看| 欧美日韩亚洲综合一区| 成人激情视频免费在线| 狠狠做深爱婷婷综合一区| 久久观看最新视频| 三妻四妾完整版在线观看电视剧| 三级外国片在线观看视频| 国产成人va亚洲电影| 日韩经典中文字幕| 亚洲白拍色综合图区| 欧美金发大战黑人最粗videos| 国产午夜无码视频在线观看| 日韩av在线精品| av高清不卡在线| 日韩欧美久久久| 美女视频黄 久久| 日韩一区日韩二区| 欧美大片在线观看一区二区| 免费国产在线视频| 欧美亚洲韩国| 九九热r在线视频精品| 在线免费日韩av| 欧美日韩亚洲一区二区| 第四色在线视频| 精品午夜福利在线观看| 99r国产精品| 一本色道69色精品综合久久| 日韩欧美国产亚洲| 天天色 色综合| 任我爽在线视频精品一| 经典三级久久| 午夜dj在线观看高清视频完整版|