令我非常懊恼的是,我必须使用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
有什么想法吗?
答案 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 = session.Property("CommonAppDataFolder")