在VB和Web頁面中使用Shell物件 (轉)
在VB和頁面中使用
武漢測繪科技大學光電工程學院電子工程系
朱劼
---- 什麼是Shell物件?具體來講,就是對一些常用外殼操作的封裝。象開啟或瀏覽一個夾、查詢檔案、關閉等等,而且還能瀏覽整個檔案,獲取檔案或資料夾的各種資訊。由於這些封裝是建立在OLE自動化服務的基礎之上,所以我們就可以在VB和Web中方便的使用它們。
---- 在VB中使用
---- VB自身所提供的物件或函式的功能也許比較有限,但能夠引用各式各樣的型別庫和自動化物件就將其功能無限的擴充套件了!具體做法如下(以中文為例):
---- 新建一個工程,在“工程”選單中選擇“引用”,你將看到一個“引用對話方塊”,然後在“可用的引用”中選擇“ Shell Controls and Automation”,這樣你就可以在中使用Shell物件了。
---- 下面來試一試Shell物件提供的方法。在窗體(Form1)中新增一個按扭(Button1),然後在Button1的Click事件中新增如下程式碼:
Dim MyShell As Shell Set MyShell = New Shell MyShell.FindFiles
---- 當MyShell變數成為Shell物件的例項之後,你在編輯的過程中就可以看到Shell物件的所有方法。上面的程式碼使用的是FindFiles方法,它將顯示“查詢檔案”對話方塊。下表給出了Shell物件中常用的方法,以供大家參考。
---- 方法 描述
---- BrowseForFolder 顯示瀏覽資料夾對話方塊,包括4個引數:
---- Hwnd, Title, Options, [Folder]
---- Hwnd:包含對話方塊的窗體控制程式碼(handle),一般設定為0。 Title:將在對話方塊中顯示的說明,為字串。
---- Options:使用對話方塊的特殊方式,為長整數,一般設定為0。
---- [RootFolder]:可選的,用來設定瀏覽的最頂層資料夾,預設時為“桌面”,你可以將其設定為一個路徑或“特殊資料夾常數”。
---- 該方法返回一個Folder物件。
---- ControlPanelItem 執行一個指定的控制皮膚專案,包括一個引數:
---- szDir:控制皮膚專案名
---- Explore 用瀏覽一個指定資料夾,包括一個引數:
---- vDir:一個路徑或“特殊資料夾常數”
---- Open 開啟一個指定資料夾,包括一個引數:
---- vDir:一個路徑或“特殊資料夾常數”
---- FileRun 顯示“執行”對話方塊
---- FindComputer 顯示“查詢計算機”對話方塊
---- FindFiles 顯示“查詢檔案”對話方塊
---- Cascade 層疊排列桌面上所有視窗
---- TileHorizontally 橫向排列桌面上所有視窗
---- TileVertically 縱向排列桌面上所有視窗
---- MinimizeAll 最小化所有視窗
---- UninimizeALL 恢復最小化的視窗
---- EjectPC 登出當前
---- Suspend 將計算機掛起
---- ShutdownWindows 顯示“關閉Windows”對話方塊
---- NameSpace 用所給的資料夾路徑建立一個資料夾物件(Folder物件),使用Folder物件,你可以瀏覽整個檔案系統,獲取檔案或資料夾的各種資訊。
---- 表中出現了“特殊資料夾常數”,那什麼是特殊資料夾,象“我的”,“控制皮膚”等等,在系統中是找不到相應目錄的,還有“桌面”、“收藏夾”等一些Windows後就產生的資料夾,也是特殊資料夾(0x表示16進位制)。
- 桌面:sDESKTOP = 0x0000
- 文件:ssfSENDTO = 0x0009
- 收藏夾:ssfFAVORITES = 0x0006
- 印表機:ssfPRINTERS = 0x0004
- 我的電腦:ssfDRIVES = 0x0011
- 控制皮膚:ssfCONTROLS = 0x0003
- 鄰居:ssWORK = 0x0012
---- 有了這些提示和參考,再加上你的想象,一定能讓VB編出程式增色不少。
---- 在Web頁面中使用
---- 由於IE4及其以後的版本都能很好的支援,你可以在Web頁面插入各式各樣ActiveX,因此也能使用Shell物件。
---- 在HTML4中可以使用< >標識引用Shell物件,具體的HTML程式碼如下:
< html > < head > < title >Shell物件測試< /title > < meta http-equiv="Content-Type" content="text/html; charset=gb2312" > < /head > < body bgcolor="#FFFFFF" > < object classid=CLSID:13709620-C279-11CE- A49E-444553540000 id=Shell > < /object > Shell物件測試 < p > < input type="button" name="Button" value="顯示" onclick="test.innerText = Shell.BrowseForFolder(0,'請選擇一個資料夾',0);" > < /p > < p >< span id=test >< /span >< /p > < /body > < /html >
---- 你只需新建一個文字檔案,將以上程式碼寫入新檔案中,再另存為以htm為副檔名的檔案即可。當執行該Web頁後,你將看到一個名為“顯示”的按扭,單擊就會出現“瀏覽資料夾”對話方塊。
---- 該段程式碼的關鍵就是< object classid=CLSID:13709620-C279-11CE-A49E-444553540000 id=Shell >。其中classid是Shell物件的CLSID號,id是Shell物件例項的名稱,透過這個名稱就可以使用Shell物件的各種方法。
---- 由Shell物件建立的Folder物件
---- 在上面的事例和參考中,總有一個Folder物件,那如何使用該物件呢?一個Folder物件包含了一個指定資料夾的所有資訊:子目錄,其中的檔案等等。使用items方法可以返回一個資料夾專案集合(FolderItems集合),這個集合裡有指定目錄中的所有子目錄和檔案。
---- FolderItems集合有一個count屬性,可以透過它得到子目錄和檔案總數,這樣你就能用一個“迴圈語句”歷遍目錄下的所有專案。同時你就可以用item方法返回一個FolderItem物件,對一個資料夾或檔案進行操作,item方法有一個可選長整數引數,用來對集合中的專案。有了FolderItem物件,就能得到資料夾和檔案的各種資訊。FolderItem物件有如下主要屬性:
- GetFolder :如果專案是資料夾,就得到一個Folder物件
- IsBrowsable :如果可以瀏覽就為True,否則為False
- IsFileSystem :如果是系統資料夾或檔案就為True,否則為False
- IsFolder :如果是資料夾就為True,否則為False
- ModifyDate :訪問或更改的日期
- Name :檔案或目錄名
- Path :檔案或目錄的路徑
- Size :檔案的大小
- Type :檔案的型別
---- 下面是Folder物件的示例。
---- 在VB中使用:在先前的窗體中加入一個新按扭(Button2)和一個列表框(List1),再在Button2的Click事件中加入如下程式碼:
Dim MyShell As Shell Dim myFolder, myFolders Set MyShell = New Shell Set myFolder = MyShell.BrowseForFolder (Form1.hWnd, "請選擇一個資料夾", 0) Set myFolders = myFolder.Items() List1.Clear For i = 0 To myFolders.Count - 1 List1.AddItem myFolders.Item(i).Name Next I
---- 在Web頁中使用:將以下程式碼加入上一節示例中< head >< /head >之間,再把onclick="test.innerText = Shell.BrowseForFolder(0,'請選擇一個資料夾',0);"換為onclick="test.innerHTML = ShowItem();",就能執行了!
< script language="script" > function ShowItem() { var myFolder, myFolders; var s = ""; myFolder = Shell.BrowseForFolder(0,"請選擇一個資料夾",0); myFolders = myFolder.items(); for (var i = 0;i < myFolders.count;i++) s += myFolders.item(i).name + "< br >"; return(s) } < /script >
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1000539/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在VB中使用檔案物件 (轉)物件
- 如何使用Web3.js API 在頁面中進行轉賬WebJSAPI
- 在web工程中設定首頁的頁面Web
- 框架頁中Silverlight和Web頁面之間跳轉和返回框架Web
- 在VC6.0中呼叫瀏覽器訪問WEB頁面 (轉)瀏覽器Web
- VB.NET中物件的克隆 (轉)物件
- Spring中整合Ehcache使用頁面、物件快取Spring物件快取
- 在 Web 中判斷頁面是不是重新整理Web
- ASP.NET 頁面物件模型 (轉)ASP.NET物件模型
- 使用Web元件載入頁面Web元件
- web頁面Web
- 在VUE中改變陣列、物件。頁面沒有變化Vue陣列物件
- 在 VB 中使用 Unicode API (轉)UnicodeAPI
- Shell 物件(轉)物件
- 使用 Babylon.js 在 HTML 頁面載入 3D 物件JSHTML3D物件
- 在 Web 頁上使用條件數值格式 (轉)Web
- 在VB中編輯資料庫和電子表格 (轉)資料庫
- 在VB.Net中建立使用控制元件陣列 (轉)控制元件陣列
- Web 前端頁面劫持和反劫持Web前端
- Web頁面中的“門”—Web端登入頁的設計Web
- vue中未定義的的物件屬性在頁面中繫結不到值Vue物件
- 在VB.NET中尋找App (轉)APP
- 在自己的 app 中使用 Sarfari 開發工具除錯 Web 頁面APP除錯Web
- Asp.Net中動態頁面轉靜態頁面ASP.NET
- Web 頁面怎麼加貨幣符號和大寫轉換Web符號
- 在Dreamweaver中靈活使用網頁表格(轉)網頁
- 在MVC中實現 網頁錯誤跳轉到500統一頁面MVC網頁
- 零頁面機制在缺頁中斷中的作用
- Ehcache 整合Spring 使用頁面、物件快取Spring物件快取
- 使用QTP管理wap頁面物件心得小結QT物件
- ThinkPHP框架中自定義錯誤頁面和提示頁面PHP框架
- 在VB中使用API關閉視窗 (轉)API
- 提升現代web app中的頁面效能WebAPP
- Web頁面中5種超酷的Hover效果Web
- [轉]如何使jsp頁面在EBS中自動編譯JS編譯
- web頁面測試Web
- VB中的Unicode 和 Ansi 格式 (轉)Unicode
- C#/VB.NET 合併PDF頁面C#