使用Inno Setup以二进制格式将当前日期存储到注册表



是否可以使用Inno Setup将当前日期写入注册表项作为二进制数据? (如果它是一个字符串,那么它就很容易被别人修改)

在我的MFC c++项目中,我使用WriteProfileBinary序列化DATE变量。

最终,我需要能够使用。net c#将此值读取为DateTime变量。我将使用通用程序数据键来存储值,并且只有if不存在。


[Registry]适合二进制数据:

如果指定binary,设置将创建一个二进制(REG_BINARY)值……如果数据类型是binary,这是一个十六进制字节序列格式:"00 ff 12 34".

如何获取时间戳然后把它转换成所需的格式?


我看到这个问题(使用Inno Setup Pascal脚本编写二进制数据到注册表)这是有用的,也是在Inno Setup论坛,他们回应了我:

这是可能的,但你必须使用一些[Code]RegWriteBinaryValue函数。

但我仍然不清楚:

  1. 如何写入当前时间戳使用此函数到注册表?
  2. 如何以二进制格式编写,以便。net c#能够将其作为DateTime对象读取?

要将当前日期作为二进制值写入注册表,您可以这样做:

var
DateStr: string;
begin
DateStr := GetDateTimeString('yyyy/mm/dd', '-', ':');
RegWriteBinaryValue(
HKEY_AUTO, 'SoftwareMy CompanyMy Program', 'InstallDate', DateStr);
end;

它将导致:

C:>reg query "HKCUSoftwareMy CompanyMy Program"
HKEY_CURRENT_USERSoftwareMy CompanyMy Program
InstallDate    REG_BINARY    323032312D31302D3039  

如果你喜欢,你可以做更多的混淆。无论您做什么,用户都可以或多或少地修改值。

相关内容

  • 没有找到相关文章

最新更新