在VBS中获取Common Documents文件夹

时间:2012-01-04 17:53:05

标签: windows vbscript installer installshield special-folders

令我非常懊恼的是,我必须使用VBS编写InstallShield 2010 LE自定义操作。我没有VBS经验,所以我基本上把我找到的代码片段放在一起。

我需要获取Common Documents文件夹(CSIDL_COMMON_DOCUMENTS)。它没有在WScript.Shell.SpecialFolders中定义(尽管所有用户桌面都是)。我发现了一些尝试链接到系统DLL的示例代码:

Private Declare Function SHGetFolderPath Lib "shfolder.dll" _
Alias "SHGetFolderPathA" _
    (ByVal hwndOwner As Long, _
    ByVal nFolder As Long, _
    ByVal hToken As Long, _
    ByVal dwReserved As Long, _
    ByVal lpszPath As String) As Long

但是当我尝试在VbsEdit中运行它时,我在第一行遇到以下错误:

Microsoft VBScript compilation error: Expected end of statement

有什么想法吗?

2 个答案:

答案 0 :(得分:8)

here

被盗
  Const CSIDL_COMMON_DOCUMENTS = &h2e
  Dim objShell : Set objShell = CreateObject("Shell.Application")
  WScript.Echo objShell.Namespace(CSIDL_COMMON_DOCUMENTS).Self.Path

输出:

C:\Documents and Settings\All Users\Documents

答案 1 :(得分:0)

忽略VBScript自定义操作非常有问题的事实,您可以向WindowsInstaller询问CommonAppDataFolder的位置。

CommonAppDataFolder Property

commonAppDataFolder = session.Property("CommonAppDataFolder")