CommonAppData in vbscript

special-folders, vbscript, winapi, windows, windows-shell

Solution

Const CommonAppData = &H23&  ' the second & denotes a long integer '

Set objShell  = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(CommonAppData)

Set objFolderItem = objFolder.Self

MsgBox objFolderItem.Name & ": " & objFolderItem.Path

The MSDN holds a page that lists the other Shell Special Folder Constants.

This page is nice, too: Enumerating Special Folders, part of the Microsoft Windows 2000 Scripting Guide. (Link is now defunct, but the Internet Archive still has a copy.)

Problem

A customer's application "AppName" has its configuration files stored in CommonAppData. - Under Windows XP that is `C:\Documents and Settings\All Users\Application Data\AppName` - Under Windows Vista that is `C:\ProgramData\AppName` How do I get the correct foldername with VBScript?

Original source