vbscript - geting carpetas especiales con shell.application
path special-folders (2)
Necesito en una secuencia de comandos para devolver la ruta al escritorio del usuario actual. Ahora sé que puedes hacerlo con WScript.
var WshShell = WScript.CreateObject("WScript.Shell");
strDesktop = WshShell.SpecialFolders("Desktop");
Pero para mi script esto no funcionará ya que no puedo usar WScript. pero puedo usar el objeto shell.application como a continuación.
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
¿Cuál es la sintaxis por lo que en lugar de "BrowseForFolder" puedo simplemente devolver la ruta del escritorio actual de los usuarios?
IE reemplazar la línea
set objFolder = objshell.BrowseForFolder(0, "Example", 0, ssfWINDOWS)
con el equivalente de.
strDesktop = WshShell.SpecialFolders("Desktop");
Aclamaciones
Aaron
Pruebe el método del espacio de nombres:
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(&H10&)
Where & H10 & es una constante de carpeta especial para el escritorio. Consulte technet para obtener una lista de todas las constantes de carpetas especiales.
Necesitas usar Shell. Namespace (...).Self.Path
Shell. Namespace (...).Self.Path
:
Const ssfDESKTOPDIRECTORY = &h10
Set oShell = CreateObject("Shell.Application")
strDesktop = oShell.NameSpace(ssfDESKTOPDIRECTORY).Self.Path
WScript.Echo strDesktop
Pero para mi script esto no funcionará ya que no puedo usar WScript.
¿Quiere decir que no puede usar WScript.CreateObject(...)
porque WScript
no está definido? Si es así, simplemente puede usar CreateObject("WScript.Shell").SpecialFolders("Desktop")
lugar. Consulte ¿Cuál es la diferencia entre CreateObject y Wscript.CreateObject? .