高手接分-读取注册表的问题

meneter 2010-10-13 10:31:26
意图:读取系统中的时区信息的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;
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
meneter 2010-10-13
  • 打赏
  • 举报
回复
非常非常感谢!!
bdmh 2010-10-13
  • 打赏
  • 举报
回复

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;
meneter 2010-10-13
  • 打赏
  • 举报
回复
您可以把输出的文件名改为c:\aa.dat,然后用UltraEdit或者其它工具打开,并以二进制方式浏览。其实跟是否为Txt文件名无关。
bdmh 2010-10-13
  • 打赏
  • 举报
回复
你要写得到二进制的字符串,那就逐个字节去转换Fs 的byte为十六进制字符串

bdmh 2010-10-13
  • 打赏
  • 举报
回复
怎么不一样了,注册表中是二进制数据,txt文本中是转换成的字符,其实都是一样的内容
一、启用guest来宾帐户; 二、控制面板→管理工具→本地安全策略→本地策略→用户权利指派里,“从网络访问此计算机”中加入guest帐户,而“拒绝从网络访问这台计算机”中删除guest帐户; 三、我的电脑→工具→文件夹选项→查看→去掉“使用简单文件共享(推荐)”前的勾; 四、设置共享文件夹; 五、控制面板→管理工具→本地安全策略→本地策略→安全选项里,把“网络访问:本地帐户的共享和安全模式”设为“仅来宾-本地用户以来宾的身份验证”(可选,此项设置可去除访问时要求输入密码的对话框,也可视情况设为“经典-本地用户以自己的身份验证”); 六、右击“我的电脑”→“属性”→“计算机名”,该选项卡中有没有出现你的局域网工作组名称,如“work”等。然后单击“网络 ID”按钮,开始“网络标识向导”:单击“下一步”,选择“本机是商业网络的一部分,用它连接到其他工作着的计算机”;单击“下一步”,选择“公司使用没有域的网络”;单击“下一步”按钮,然后输入你的局域网的工作组名,如“work”,再次单击“下一步”按钮,最后单击“完成”按钮完成设置。 访问网上邻居时显示:" windows xp系统访问局域网时显示 "WORKGROUP无法访问.您可能没有权限使用网络资源.请与这台服务器的管理员联系以查明您是否有访问权限.此工作组的服务器的列表当前无法使用." 我用的是xp系统 我也遇到过这样的情况,当时也是着急得不轻,后来看到了以下的内容,照着一步步的做了做,真的好了。内容不少,但是仍然希望你能耐住性子,仔细的看看自己属于那种情况,应该会有所收获。 局域网互访 - [ 网络 ] 我也是类似问题。 以前一个局域网10多台机子互访问。安了蕃茄花园v2.3,感觉主题漂亮,桌面壁纸自动换,很爽。访问局域网计算机没问题。可网内其它机子在工作组内能看到我的机子,但打不开。说什么“没有权限”。所有设置都作了如下改动(网上找的),依然无效,何故?但求高手指点。 “网上邻居”无法互访问题解决方法大全 “网上邻居”无法互访的问题实在是太常见了,无论在学校,网吧还是家里多台电脑联机,都有可能遇到网上邻居无法互访的故展。“网上邻居”无法访问的故障多种多样,总结起来基本上有下面的几个: 1,没有共享资源/共享服务未启用。 症状:电脑与电脑间可以Ping通,但无法访问共享资源,在“计算机管理”中查看“本地共享”后会弹出“没有启动服务器服务”的错误对话框。 解决:在控制面板-管理工具-服务中启动Server服务。并设置“启动类型”为“自动”。 2,IP设置有误。 症状:双机之间无法互Ping,连接用的双绞线经过测试没有问题,没有安装防火墙。 解决:检查两台电脑的IP是否处在同一网段,还有子掩码是否相同。 3,WINXP默认设置不正确。 症状:从WIN98/2000/2003上无法访问另一台WINXP的机器。 解决:在“控制面板”中的“用户帐户”启用Guest帐号。然后在运行中输入secpol.msc启动“本地安全策略”。 本地策略 -> 用户权利指派,打开“从网络访问此计算机”,添加Guest帐户 本地策略 -> 安全选项,禁止"帐户:使用空白密码的本地帐户只允许进行控制台登陆"。 另外有时还会遇到另外一种情况:访问XP的时候,登录对话框中的用户名是灰的,始终是Guest用户,不能输入别的用户帐号。 解决:本地策略 -> 安全选项 -> "网络访问:本地帐户的共享和安全模式",修改为"经典-本地用户以自己的身份验证" 4,系统漏洞修补软件修改了安全策略。 症状:在“网上邻居”中可以看到对方的计算机,但是访问共享时却提示“没有权限访问网络” 解决:在开始菜单运行中输入secpol.msc启动“本地安全策略”,本地策略 -> 用户权利分配,打开“拒绝从网络访问这台计算机”,删除guest用户。 5,防火墙规则。 症状:安装了防火墙(包括WINXP系统自带的防火墙),出现无法Ping通,或者是访问共享资源的时候提示"XXX无法访问"、"您可能没有权限使用网络资源"、"请与这台服务器的管理员联系以查明您是否有访问权限"、"找不到网络路径"等类似的提示。 解决:停止防火墙或者添加局域网的访问规则。 WINXP自带的防火墙:打开控制面板 -> 网络和Internet连接 -> Windows防火墙 -> 例外,勾选“文件和打印机共享”。 6,Win2000/XP与Win98互访 症状:Ping命令可以通过,但无法在“网上邻居”中实现互访。 解决:在WIN2000/XP系统中:控制面板 -> 管理工具 -> 计算机管理 -> 本地用户和组 -> 用户,在Guest帐户上点击鼠标右键,选择属性,在常规项里取消
V14 2.05 程序开始时会检查电信的拨号器是否运行,以及检查自己本身是否运行,拿自己的电脑当服务器内存压力太大。 将更新服务器放到网上的免费空间了。。 某高手dzhsurf(dzhsurf@gmail.com)之前提议我将核心算号模块独立出来,电信更新的话直接升级算号模块就好了,功能我已经做好了, 暂时就不放出了。。dzhsurf也提供了用JS写的算号模块,以后电信升级只需在网上更新算号文件就OK了,希望有大一的对加密解密, 反汇编有研究的童鞋之后可以接手此算法更新工作。。 算法可见 http://code-e.vicp.net/gen.html dzhsurf用JS写的,下载下来编辑即可见源码,打算以后用本地调用JS的方法解密 C#的可见 http://download.csdn.net/source/2836732 By Zhangzhezh 2010-11-29 V13 2.05 修正一些信息显示,为新手加入了环境检查功能,并可快速开启服务,以免ICS服务没开启导致共享失败,加入了开机自启动设置 加入了注册表检查GHCA保护驱动是否存在.稍微改进更新模块,以免线程无法销毁覆盖失败。 By Zhangzhezh 2010-11-24 V12 2.05 修正了在某些Intel网卡上的IP设置和MAC修改问题!如果还有人遇到此类问题,请将系统信息导出,发送至 zhangzhezh@gmail.com 谢谢 将更新文件放入模块文件夹,以免误点。 主界面的地址信息改中文,加主机和客户机段数增加至6个。 By Zhangzhezh 2010-11-23 V11 2.05 修正了一个IP地址设置问题,当客户机使用主机时并配置编号为1的客户机时不再出错。更新模块加入了简易的版本检测功能, 同时加入了测试的自动更新功能,写的很粗略,仅供测试。。 修改IP地址时会刷新主界面的IP显示。把之前的拨号成功提示加回来了,有些朋友反映都不知道是否拨号成功 不喜欢的这个提示的朋友可以在主界面设置。。 By Zhangzhezh 2010-11-21 V10 2.05 修复了一下小bug,应某些人要求将CMD窗口封装起来了,以便更好的读取错误信息,当已经连接错误弹出时程序不再自动关闭。。 By Zhangzhezh 2010-11-20 V9 2.05 当勾选了自动连接并且已经连接至互联网的情况下程序不会再自动连接也不会关闭了,修正了界面里IP信息显示超界的问题, 当自动连接失败时会返回主界面,界面体验的优化,加入了IPV6 ISATAP隧道快速设置功能(测试)。。 By Zhangzhezh 2010-11-20 V8 2.05 修正自动连接功能的返回消息错误,重新布局界面,添加快速访问网络连接路径, 应大众要求讲dialerconfig.xml中的密码加密了,不再明文保存了,还有些小Bug优化。。 By Zhangzhezh 2010-11-19 V7 2.05 修复在Win7 64位下自动创建拨号点出错的问题!! 主界面重新排版,IP设置界面加入了例外处理,加入链接状态显示,加入断开连接功能,再次增加检测等待时间,以免遇到不准确的连接不成功提示。。 优化了部分代码,修正一下小Bug。。 By Zhangzhezh 2010-11-10 V6 2.05 将MAC修改功能用C#实现了,可能还不太完善,浏览器调用默认的,不启动IE了,完善主机客户机设置功能,允许设置不同的主机。。 加入网卡选择判断机制,不会连虚拟机网卡的MAC和IP也改了,抓取网卡准确度也提高了,拨号点每次会自动建立,不用再手工创建了。。 By Zhangzhezh 2010-11-6
V15 2.05 应大家要求重写了DialProcess模块。 显示更加美观了。 开放核心编码选择,喜欢DIY的自己整吧。 自己修改dzhsurf写的gen.html里面的JS函数即可。 同时用gen.html也算号,大家自己研究吧,不出什么问题软件到此为止结束更新,暂时没什么BUG了。 如果还遇到错误请发送至zhangzhezh@gmail.com By Zhangzhezh 2010-12-2 V14 2.05 程序开始时会检查电信的拨号器是否运行,以及检查自己本身是否运行,拿自己的电脑当服务器内存压力太大。 将更新服务器放到网上的免费空间了。 某高手dzhsurf(dzhsurf@gmail.com)之前提议我将核心算号模块独立出来,电信更新的话直接升级算号模块就好了,功能我已经做好了, 暂时就不放出了。dzhsurf也提供了用JS写的算号模块,以后电信升级只需在网上更新算号文件就OK了,希望有大一的对加密解密, 反汇编有研究的童鞋之后可以接手此算法更新工作。 算法可见 http://code-e.vicp.net/gen.html dzhsurf用JS写的,下载下来编辑即可见源码,打算以后用本地调用JS的方法解密 C#的可见 http://download.csdn.net/source/2836732 By Zhangzhezh 2010-11-29 V13 2.05 修正一些信息显示,为新手加入了环境检查功能,并可快速开启服务,以免ICS服务没开启导致共享失败,加入了开机自启动设置 加入了注册表检查GHCA保护驱动是否存在.稍微改进更新模块,以免线程无法销毁覆盖失败。 By Zhangzhezh 2010-11-24 V12 2.05 修正了在某些Intel网卡上的IP设置和MAC修改问题!如果还有人遇到此类问题,请将系统信息导出,发送至 zhangzhezh@gmail.com 谢谢 将更新文件放入模块文件夹,以免误点。 主界面的地址信息改中文,加主机和客户机段数增加至6个。 By Zhangzhezh 2010-11-23 V11 2.05 修正了一个IP地址设置问题,当客户机使用主机时并配置编号为1的客户机时不再出错。更新模块加入了简易的版本检测功能, 同时加入了测试的自动更新功能,写的很粗略,仅供测试。。 修改IP地址时会刷新主界面的IP显示。把之前的拨号成功提示加回来了,有些朋友反映都不知道是否拨号成功 不喜欢的这个提示的朋友可以在主界面设置。。
V16 2.05 鉴于电信封得厉害,特发布此版。。 复制用户名到剪贴板功能也会读取核心编码设置了,解决了线程误报问题,客户机连接到主机的情况下也可以进行拨号了, 据反映很多电信在很多学校的终端布置了协议分析系统。。共享会被检测,在西大路由器怎么用,ICS怎么开都没事, 但是据反映在某些学校检测得很厉害,ICS一开就进行提示,所以特加入了网络设置模块,使用之前一定要看说明!!! ,可以一定程度上防止电信进行共享检测,主要是将一些数据包特征参数标准化了,据测试效果良好。不会出现网页 打不开等等症状。。 By Zhangzhezh 2010-12-7 V15 2.05 应大家要求重写了DialProcess模块。。显示更加美观了。。 开放核心编码选择,喜欢DIY的自己整吧。。自己修改dzhsurf写的gen.html里面的JS函数即可。。 同时用gen.html也算号,大家自己研究吧,不出什么问题软件到此为止结束更新,暂时没什么BUG了。。 如果还遇到错误请发送至zhangzhezh@gmail.com By Zhangzhezh 2010-12-2 V14 2.05 程序开始时会检查电信的拨号器是否运行,以及检查自己本身是否运行,拿自己的电脑当服务器内存压力太大。 将更新服务器放到网上的免费空间了。。 某高手dzhsurf(dzhsurf@gmail.com)之前提议我将核心算号模块独立出来,电信更新的话直接升级算号模块就好了,功能我已经做好了, 暂时就不放出了。。dzhsurf也提供了用JS写的算号模块,以后电信升级只需在网上更新算号文件就OK了,希望有大一的对加密解密, 反汇编有研究的童鞋之后可以接手此算法更新工作。。 算法可见 http://code-e.vicp.net/gen.html dzhsurf用JS写的,下载下来编辑即可见源码,打算以后用本地调用JS的方法解密 C#的可见 http://download.csdn.net/source/2836732 By Zhangzhezh 2010-11-29 V13 2.05 修正一些信息显示,为新手加入了环境检查功能,并可快速开启服务,以免ICS服务没开启导致共享失败,加入了开机自启动设置 加入了注册表检查GHCA保护驱动是否存在.稍微改进更新模块,以免线程无法销毁覆盖失败。 By Zhangzhezh 2010-11-24 V12 2.05 修正了在某些Intel网卡上的IP设置和MAC修改问题!如果还有人遇到此类问题,请将系统信息导出,发送至 zhangzhezh@gmail.com 谢谢 将更新文件放入模块文件夹,以免误点。 主界面的地址信息改中文,加主机和客户机段数增加至6个。 By Zhangzhezh 2010-11-23 V11 2.05 修正了一个IP地址设置问题,当客户机使用主机时并配置编号为1的客户机时不再出错。更新模块加入了简易的版本检测功能, 同时加入了测试的自动更新功能,写的很粗略,仅供测试。。 修改IP地址时会刷新主界面的IP显示。把之前的拨号成功提示加回来了,有些朋友反映都不知道是否拨号成功 不喜欢的这个提示的朋友可以在主界面设置。。 By Zhangzhezh 2010-11-21

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧