在Windows 7 64位上从Delphi 7读取注??册表的问题
发布时间:2020-12-14 05:38:03 所属栏目:Windows 来源:网络整理
导读:我认为这个问题已经被问到了,但我找不到适合我的解决方案.我在 Windows 7旗舰版,64位下使用Delphi 7.实际上我开始在32位操作系统下编写应用程序,但随后更改了PC,所以现在更改为64.在我的程序中,我使用注册过程,从Windows的PROGID值生成许可证ID.不幸的是,它
我认为这个问题已经被问到了,但我找不到适合我的解决方案.我在
Windows 7旗舰版,64位下使用Delphi 7.实际上我开始在32位操作系统下编写应用程序,但随后更改了PC,所以现在更改为64.在我的程序中,我使用注册过程,从Windows的PROGID值生成许可证ID.不幸的是,它没有读取值,似乎它正在寻找一个不同的文件夹,可能被Windows 64重定向到32位注册表.你能帮我吗?这是我使用的代码:
Registry := TRegistry.Create(KEY_READ OR $0100); try Registry.Lazywrite := false; Registry.RootKey := HKEY_LOCAL_MACHINE; if CheckForWinNT = true then Begin if not Registry.OpenKeyReadOnly('SoftwareMicrosoftWindows NTCurrentVersion') then showmessagE('cant open'); end else Registry.OpenKeyReadOnly('SoftwareMicrosoftWindowsCurrentVersion'); result := Registry.ReadString('ProductID'); Registry.CloseKey; finally Registry.Free; end; // try..finally 另外,您知道如何在Delphi 7中查找程序是在64位还是32位计算机下运行? 解决方法
您已经问过这个问题,请参阅
Registry ReadString method is not working in Windows 7 in Delphi 7.
所以你知道你必须在TRegistry.Create中添加$0100.您的代码的问题是您使用OpenKeyReadOnly将注册表的Access属性重置为KEY_READ,因此KEY_READ或$0100将丢失. 只需使用OpenKey而不是OpenKeyReadOnly,这不会重置您的Access属性. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – Server 2008 R2启动时间为2小时.现
- 使文件可写以添加新包
- 有没有一个温和的方式来停止进程使用Windows PowerShell?
- 2018-2019-2 《网络对抗技术》Exp3免杀原理与实践 20165222
- active-directory – Windows 7在分支机构上慢速登录到域
- 在Windows上搭建Nuget服务
- windows-server-2003 – 网络文件同步工具
- windows-phone-7 – 购买Windows Phone 7手机进行开发时,我
- windows-server-2008 – 让squid通过kerberos和Windows 200
- windows phone 8:从代码中打开app中的facebook页面