The following code retrieves the path of the specified special folder.
JScript
var WshShell = WScript.CreateObject("WScript.Shell");
strDesktop = WshShell.SpecialFolders("Desktop");
VBScript
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
PowerBASIC
DIM pWsh AS IWshShell
DIM pSpecialFolders AS IWshCollection
DIM vItem AS VARIANT
DIM vValue AS VARIANT
pWsh = NEWCOM "WScript.Shell"
pSpecialFolders = pWsh.SpecialFolders
vItem = "Desktop"
vValue = pSpecialFolders.Item(vItem)
PRINT VARIANT$(vValue)
The following code enumerates the special folders collection.
#COMPILE EXE
#DIM ALL
#INCLUDE "WSHOM.INC"
FUNCTION PBMAIN
LOCAL pWsh AS IWshShell
LOCAL pSpecialFolders AS IWshCollection
LOCAL nCount AS LONG
LOCAL i AS LONG
LOCAL vItem AS VARIANT
LOCAL vValue AS VARIANT
pWsh = NEWCOM "WScript.Shell"
IF ISNOTHING(pWsh) THEN EXIT FUNCTION
' Get a reference to the special folders collection
pSpecialFolders = pWsh.SpecialFolders
IF ISNOTHING(pSpecialFolders) THEN
MSGBOX "IWshShell.get_SpecialFolders: Error &H" & HEX$(OBJRESULT)
EXIT FUNCTION
END IF
' Get the number of objects in the collection
nCount = pSpecialFolders.Count
' Enumerates the collection
FOR i = 0 TO nCount - 1
vItem = i AS LONG
vValue = pSpecialFolders.Item(vItem)
IF OBJRESULT THEN EXIT FOR
MSGBOX VARIANT$(vValue)
NEXT
END FUNCTION