2011-11-08 141 views
0

我需要在腳本中將路徑返回到當前用戶桌面。現在我知道你可以用WScript來做。使用shell.application創建特殊文件夾

var WshShell = WScript.CreateObject("WScript.Shell"); 
     strDesktop = WshShell.SpecialFolders("Desktop"); 

但對於我的腳本,這將不起作用,因爲我不能使用WScript。但是我可以像下面那樣使用shell.application對象。

dim objShell 
     dim ssfWINDOWS 
     dim objFolder 

     ssfWINDOWS = 0 
     set objShell = CreateObject("shell.application") 
      set objFolder = objshell.BrowseForFolder(0, "Example", 0, ssfWINDOWS) 
       if (not objFolder is nothing) then 
       Set objFolderItem = objFolder.Self 
        g_objIE.Document.All("logdir").Value = objFolderItem.path 
       end if 
      set objFolder = nothing 
     set objShell = nothing 

什麼是語法,而不是「BrowseForFolder」我可以簡單地返回當前用戶桌面的路徑?

IE替換的equilivent線

set objFolder = objshell.BrowseForFolder(0, "Example", 0, ssfWINDOWS) 

strDesktop = WshShell.SpecialFolders("Desktop"); 

乾杯

亞倫

回答

3

您需要使用Shell. Namespace (...).Self.Path

Const ssfDESKTOPDIRECTORY = &h10 
Set oShell = CreateObject("Shell.Application") 
strDesktop = oShell.NameSpace(ssfDESKTOPDIRECTORY).Self.Path 

WScript.Echo strDesktop 


但對於我的腳本這是行不通的,因爲我不能使用WScript的。

你的意思是你不能使用WScript.CreateObject(...),因爲WScript是undefined?如果是這樣,您可以簡單地使用CreateObject("WScript.Shell").SpecialFolders("Desktop")。見What is the difference between CreateObject and Wscript.CreateObject?

+0

歡呼,這是完美的,你可能是正確的關於第二點。歡呼的鏈接非常有用。 – DevilWAH

3

嘗試命名方法:

Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.Namespace(&H10&) 

凡& H10 &是針對桌面的特殊文件夾常數。有關所有特殊文件夾常量的列表,請參閱technet