我应该需要你对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;
你可以帮帮我吗?
答案 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
。