Interactive PowerBasic Forum

Legacy Software (PBWIN 9.0+/PBCC 5.0+) => Source Code => Scripting => Windows Script Host => Topic started by: José Roca on July 14, 2008, 07:22:21 AM

Title: IWshShell.SpecialFolders Property
Post by: José Roca on July 14, 2008, 07:22:21 AM


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)

Title: Re: IWshShell.SpecialFolders Property
Post by: José Roca on July 14, 2008, 07:24:53 AM
 
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