意图:读取系统中的时区信息的TZI值并写入文件
问题:对比注册表中的值与写入文件的数据,发现两者完全不同
代码:
const
TIMEZONE_PATH = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Afghanistan Standard Time';
var
Reg: TRegistry;
PTZIData: PByte;
Fs: TFileStream;
TZIDataSize: Integer;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKeyReadOnly(TIMEZONE_PATH); TZIDataSize := Reg.GetDataSize('TZI');
GetMem(PTZIData, TZIDataSize);
Reg.ReadBinaryData('TZI', PTZIData^, TZIDataSize);
Reg.CloseKey;
Reg.Free; Fs := TFileStream.Create('c:\aa.txt', fmCreate);
Fs.Write(PTZIData, TZIDataSize);
Fs.Free; FreeMem(PTZIData);
end;
问题:对比注册表中的值与写入文件的数据,发现两者完全不同
代码:
const
TIMEZONE_PATH = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Afghanistan Standard Time';
var
Reg: TRegistry;
PTZIData: PByte;
Fs: TFileStream;
TZIDataSize: Integer;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKeyReadOnly(TIMEZONE_PATH); TZIDataSize := Reg.GetDataSize('TZI');
GetMem(PTZIData, TZIDataSize);
Reg.ReadBinaryData('TZI', PTZIData^, TZIDataSize);
Reg.CloseKey;
Reg.Free; Fs := TFileStream.Create('c:\aa.txt', fmCreate);
Fs.Write(PTZIData, TZIDataSize);
Fs.Free; FreeMem(PTZIData);
end;
const
TIMEZONE_PATH = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Afghanistan Standard Time';
var
Reg: TRegistry;
PTZIData: PByte;
strem:TMemoryStream;
TZIDataSize,len: Integer;
begin
strem := TMemoryStream.Create;
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKeyReadOnly(TIMEZONE_PATH); TZIDataSize := Reg.GetDataSize('TZI');
GetMem(PTZIData, TZIDataSize);
len := Reg.ReadBinaryData('TZI', PTZIData^, TZIDataSize);
Reg.CloseKey;
Reg.Free;
strem.Write(PTZIData^,len);
strem.SaveToFile('c:\aa.txt');
strem.Free;
FreeMem(PTZIData);
end;