2

Inno Setupは使いやすいインストーラーです。このstackoverflow questionで高く評価されています。サード パーティ アプリケーションのインストール フォルダーに関連するフォルダーにプラグインをインストールする必要があります。これを行う方法はドキュメントから明らかではありません。

4

1 に答える 1

6

レジストリ エントリを使用してオプションでファイルをインストールする方法の答えは、ドキュメントとサンプル コードにありますが、明確ではない可能性があるため、例として Adob​​e Premiere プラグインを使用したスクリプト スニペットの例を次に示します。

主な手順は次のとおりです。

1) Check: パラメータを使用する

2) RegQueryStringValue を呼び出す関数を記述し、パスを解析して相対的なプラグイン フォルダーの宛先を構築します。

3) {code:} を使用して関数を呼び出し、宛先フォルダーを返します。

//
// Copy my plugin file to the Premiere Plugin folder, but only if Premiere is installed.
//
[Files]
Source: "C:\sourceFiles\myplugin.prm";  Check: GetPremierePluginDestination; DestDir: "{code:PluginDestination}"; Flags: ignoreversion overwritereadonly

[Code]

var sPluginDest : String;

//
// Search for the path where Premiere Pro was installed.  Return true if path found.
// Set variable to plugin folder
//

function GetPremierePluginDestination(): Boolean;
var
  i:      Integer;
  len:    Integer;

begin
  sPluginDest := '';

  RegQueryStringValue( HKLM, 'SOFTWARE\Adobe\Premiere Pro\CurrentVersion', 'Plug-InsDir', sPluginDest );
  len := Length(sPluginDest);
  if len > 0 then
  begin
    i := len;
    while sPluginDest[i] <> '\' do
      begin
        i := i-1;
      end;

    i := i+1;
    Delete(sPluginDest, i, Len-i+1);
    Insert('Common', sPluginDest, i);
  end;
  Result := len > 0;
end;

//
//  Use this function to return path to install plugin
//
function PluginDestination(Param: String) : String;
begin
   Result := sPluginDest;
end;

私は Pascal プログラマーではないので、GetPremiereDestination をより効率的にするための提案は大歓迎です。

于 2008-09-23T18:32:38.110 に答える