基于体系结构

时间:2015-08-13 21:33:44

标签: inno-setup registrykey pascalscript

我应该需要你对Inno Setup的宝贵帮助(请耐心等待,因为我不是程序员)。

我被要求提供一个脚本,在安装myprogram.exe后执行(仅在Windows 10中)某些注册表更改。

在与Windows 10不同的所有其他操作系统中,设置只运行myprogram.exe并且不执行任何检查。

在安装myprogram.exe之后的Windows 10中,我应该(在x64版本中)更改了两个注册表项。

安装“myprogram.exe”后我应该更改的注册表项是:

在64位版本中:

  • HKLM\Software\Microsoft\Internet Explorer\Main\Feature Control\FEATURE_DOCUMENT_COMPATIBLE_MODE
  • HKLM\Software\Wow6432Node\Microsoft\Internet Explorer\Main\Feature Control\ FEATURE_DOCUMENT_COMPATIBLE_MODE

在32位版本中:

  • HKLM\Software\Microsoft\Internet Explorer\Main\Feature Control\FEATURE_DOCUMENT_COMPATIBLE_MODE

添加一个名为myprogram.exe的dword(在上面的键中),其中包含十六进制值$7BF

我尝试在每个[Code]语句的末尾添加MinVersion:部分和RegWriteDwordValue

我不知道如何区分要修改的32位和64位版本的密钥以及如何使用十六进制值$7BF创建双字。

到目前为止,这是我的名单:

[Files]
Source: "C:\Meleena\myprogram.exe"; DestDir: "{tmp}"; Flags: ignoreversion

[Run]
Filename: "C:\Meleena\myprogram.exe";

[Code]

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if IsWin64 and if CurStep = sspostInstall then begin
    RegWritedwordValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Internet Explorer\Main\Feature Control\ FEATURE_DOCUMENT_COMPATIBLE_MODE\',
      'Myprogram.exe', $7BF); Minversion:10.0.10240
    RegWritedwordValue(HKEY_LOCAL_MACHINE, 'Software\Wow6432Node\Microsoft\Internet Explorer\Main\Feature Control\ FEATURE_DOCUMENT_COMPATIBLE_MODE\',
      'Myprogram.exe', $7BF); Minversion:10.0.10240
  end;
  if IsnotWin64 and if CurStep = sspostInstall then begin
    RegWritedwordValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Internet Explorer\Main\Feature Control\ FEATURE_DOCUMENT_COMPATIBLE_MODE\',
      'Myprogram.exe', $7BF); Minversion:10.0.10240
  end;  
end;
你可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

您不需要Pascal Scripting。 Inno Setup允许本地使用。您只需要允许设置在64-bit mode中运行。

[Setup]
; Allow 64-bit mode
ArchitecturesInstallIn64BitMode=x64

[Registry]
; Both 32-bit and 64-bit
Root: HKLM; \
    Subkey: "Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE"; \
    ValueType: dword; ValueName: "myprogram.exe"; ValueData: $7BF; MinVersion:10.0.10240

; On 64-bit systems, install also to Software\Wow6432Node\Microsoft\...
; Note the HKLM32
Root: HKLM32; \
    Subkey: "Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE"; \
    ValueType: dword; ValueName: "myprogram.exe"; ValueData: $7BF; MinVersion:10.0.10240; \
    Check: IsWin64 

请注意,它是FeatureControl,而不是Feature Control