2

非常に残念なことに、VBS を使用して InstallShield 2010 LE カスタム アクションを作成する必要があります。私は VBS の経験がないので、基本的に見つけたコード スニペットをまとめています。

Common Documents フォルダー (CSIDL_COMMON_DOCUMENTS) を取得する必要があります。では定義されていませんWScript.Shell.SpecialFolders(ただし、All Users Desktop は定義されています)。システム 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

何か案は?

4

2 に答える 2

8

ここから盗まれた

  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
于 2012-01-04T18:12:11.407 に答える
0

VBScript カスタム アクションが非常に問題があるという事実を無視して、WindowsInstaller に CommonAppDataFolder の場所を尋ねることができます。

CommonAppDataFolder プロパティ

commonAppDataFolder = session.Property("CommonAppDataFolder")
于 2012-01-04T23:58:16.773 に答える