1
我想写入基于OS的注册表。我在地方OS检测功能,并发现你可以在注册表部分的检查功能,所以尝试以下操作:根据条件写入注册表
Root: HKLM; SubKey: Software\Microsoft\Windows; ValueType: dword; ValueName: Test; ValueData: 1; Flags: createvalueifdoesntexist; Check: IsWindows7
但它没有工作,这意味着当我安装Win7上和WinXP,它在两种情况下都将价值写入注册表。
这里是检测OS代码:
function IsWindows7(): Boolean;
var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
// Windows 7 version is 6.1 (workstation)
if (Version.Major = 6) and
(Version.Minor = 1) and
(Version.ProductType = VER_NT_WORKSTATION)
then
Result := True
else
Result := False;
end;
任何意见/建议吗?
尝试向我们展示您的'IsWindows7'检查函数的代码。为什么不使用标准的'MinVersion'和'OnlyBelowVersion'参数? – Deanna
感谢您的回复!我可以使用标准参数很好,但我仍然需要在某处测试它,然后根据测试写入注册表。我要问的是,上面给出的线是否正确? –
是的。第一个意见是正确的,问题应该来自IsWindows7,所以你应该添加此功能的问题。通过一个纯粹的哈撒,你测试Win7(6而不是7)的正确的主vesrion号码? – az01