我需要在脚本中返回当前用户桌面的路径。现在我知道你可以用WScript做到这一点。
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替换
行set objFolder = objshell.BrowseForFolder(0, "Example", 0, ssfWINDOWS)
与...平等。
strDesktop = WshShell.SpecialFolders("Desktop");
干杯
亚伦
答案 0 :(得分:3)
尝试名称空间方法:
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(&H10&)
其中& H10&是桌面的特殊文件夹常量。有关所有特殊文件夹常量的列表,请参阅technet。
答案 1 :(得分: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
未定义?如果是这样,您只需使用CreateObject("WScript.Shell").SpecialFolders("Desktop")
即可。请参阅What is the difference between CreateObject and Wscript.CreateObject?。