3

Inno Setup を使用している IDL .sav ファイルのターゲットの場所に IDL 仮想マシンを追加する必要があり、次のコード行:

[Icons]
Name: "{commondesktop}\clas"; Filename: "{code:GetIDLPath}"; Parameters: "{code:GetIDLParams}"; IconFilename: "{app}\clas_icon.ico"

[Code]
function GetIDLPath(Value: string): string;
begin

  RegQueryStringValue(HKEY_LOCAL_MACHINE_32, 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\idlrt.exe', '', Result);
  if Result = '' then
    Result := 'idlrt.exe';
end;

function GetIDLParams(Value: string): string;
begin
  // prepare the -vm option followed by a quoted application path to a file
  Result := '-vm ' + AddQuotes(ExpandConstant('{app}\bin\BATCH_CLAS_MAIN.sav'));
  // and replace backslashes to forward slashes
  StringChangeEx(Result, '\', '/', False);
end;

このコードは、次のように 32 ビット バージョンではなく、64 ビット IDL 仮想マシン exe ファイルの場所を示します。

"C:\Program Files\Exelis\IDL82\bin\bin.x86_64\idlrt.exe" -vm C:/clas/bin/BATCH_CLAS_MAIN.sav

しかし、私は必要です:

"C:\Program Files\Exelis\IDL82\bin\bin.x86\idlrt.exe" -vm C:/clas/bin/BATCH_CLAS_MAIN.sav

これらの両方の場所を確認しました:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\App Paths\idlrt.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\idlrt.exe 

どちらも 64 ビット バージョンのパスしかありません。

32ビットバージョンのパスを取得する方法を知っている人はいますか?

4

0 に答える 0