vbscript path special-folders

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? .