我需要将 idl 虚拟机添加到我正在使用 Inno Setup 的 IDL .sav 文件的目标位置,以及以下代码行:
[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;
此代码将为我提供 64 位 IDL 虚拟机 exe 文件的位置,而不是 32 位版本,如下所示:
"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 位版本路径?