Const NETHOOD = &H13&
Set objWSHShell = CreateObject("Wscript.Shell")
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(NETHOOD)
Set objFolderItem = objFolder.Self
strNetHood = objFolderItem.Path
strShortcutName = "Finance Department Public Folder"
strShortcutPath = "\\atl-finance-01\public"
Set objShortcut = objWSHShell.CreateShortcut _
(strNetHood & "\" & strShortcutName & ".lnk")
objShortcut.TargetPath = strShortcutPath
objShortcut.Save
一開始我們定義稱為 NETHOOD 的常數並為其指定值 &H13&;我們稍後會使用它來找出 [我的網路芳鄰] 資料夾。接著我們建立兩個不同物件的執行個體:Windows Script Host Shell 物件與 Windows Shell 物件。以下兩行程式碼就是處理這項工作:
Set objWSHShell = CreateObject("Wscript.Shell")
Set objShell = CreateObject("Shell.Application")
接下來,我們分別使用 Windows Shell 物件方法和屬性 (Namespace 與 Self) 來確定 [我的網路芳鄰] 資料夾的位置。實際上,Namespace 方法會為我們找到資料夾,但傳回的是 Folder 物件。基於技術上的原因,倒不用擔心這點,這個物件對我們沒什麼用;因此我們使用 Self 屬性來傳回代表 [我的網路芳鄰] 資料夾的 FolderItem 物件。這麼做是因為 FolderItem 物件才是我們的指令碼能夠處理的物件。
收到 FolderItem 後,我們就可以抓取 Path 屬性,然後指定到 strNetHood 變數;strNetHood 現在等於是 C:\Documents and Settings\kenmyer\NetHood。沒錯,僅僅三行程式碼,解釋竟這麼冗長迂迴:
Set objFolder = objShell.Namespace(NETHOOD)
Set objFolderItem = objFolder.Self
strNetHood = objFolderItem.Path
接著我們只需要將捷徑名稱和網路位置的路徑指定道一對變數,這甚至不必親自下手,只要在指令碼中硬式編碼這些值即可。不過指定變數的值可方便您修改指令碼來滿足您的需求。
現在我們要使用 WSH Shell 物件,實際建立捷徑。開始會先呼叫 CreateShortcut 方法,向其傳遞新捷徑名稱的路徑。其中結合了四個項目:[我的網路芳鄰] 資料夾的路徑 (strNetHood)、行尾反斜線 (\)、新捷徑的名稱 (strShortcutName) 以及副檔名 .lnk,得到的捷徑路徑如下:
C:\Documents and Settings\kenmyer\NetHood\Finance Department Public Folder.lnk
我們將捷徑的 TargetPath 屬性設定為網路位置 (\\atl-finance-01\public),然後呼叫 Save 方法以寫入新捷徑到檔案系統中。就這樣,新的網路位置油然而生。
不好意思,現在我們要去休息一下。誰想得到指令碼竟然會這麼累人? |