Delphi - 在 Windows 中枚举 SATA IO 端口号

发布于 2024-07-15 17:37:21 字数 308 浏览 10 评论 0原文

给你一个新的。 我正准备帮助另一位程序员将他的程序从 C# 移植到 Delphi。 我无法真正阅读 C#,他此时也没有向我发送实际源代码,因此从讨论来看,我认为我将一次从一个函数的角度来解决大部分问题。

我需要能够获取连接到系统的所有 SATA 设备(我相信我的意思是设备)的 IO 端口号。 我知道 WMI 不会这样做,所以我不知道从哪里开始。 我知道这个应用程序的 C# 版本使用基本上解析注册表的 C# 类。 我一直不愿意直接从注册表中读取数据。 我觉得如果可能的话,从 windows api 或相关的信息获取信息在 windows 版本之间更可靠。

New one for you. Im getting ready to help another programmer port his program from C# to Delphi. I cant truly read C# nor has he sent me actual source at this point so from discussion i think im going to be tackling most of this from a one function at a time standpoint.

I need to be able to get the IO Port Numbers for all SATA devices (I believe i mean devices) connected to the system. I know WMI wont do it so im not sure where to start on this one. I know the C# version of this app uses a C# class that basically parses the registry. Ive always been icky about directly reading from the registry. I feel that getting the information from windows api or related is more reliable between windows versions if possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不是你的备胎 2024-07-22 17:37:21

如果原始版本正在读取注册表,而您正在移植该功能,那么读取注册表对我来说似乎是一个完全有效的解决方案?

顺便说一句,Delphi 有来自单元registry.pas 的TRegistry 类。 您可以使用它来读取和写入注册表。 默认情况下,您在 Vista 上要求所有权限(读/写..),这可能是一个问题,因此如果您打算只读,请务必打开只读。

键值:

KEY_READ
KEY_WRITE 
KEY_EXECUTE
KEY_ALL_ACCESS

这些实际上是由基本值组成的集合:

KEY_QUERY_VALUE       
KEY_SET_VALUE         
KEY_CREATE_SUB_KEY    
KEY_ENUMERATE_SUB_KEYS
KEY_NOTIFY     
KEY_CREATE_LINK
KEY_WOW64_32KEY
KEY_WOW64_64KEY
KEY_WOW64_RES

If the original is reading the registry, and you are porting the function, reading the registry looks like a perfectly valid solution to me?

By the way, Delphi has the class TRegistry from the unit registry.pas. You can use that to read and write the registry. By default you are asking for all the rights (read/write..) on vista this can be a problem, so be sure to open readonly if you are planning to read only.

Key values:

KEY_READ
KEY_WRITE 
KEY_EXECUTE
KEY_ALL_ACCESS

These are actually sets made of the basic values:

KEY_QUERY_VALUE       
KEY_SET_VALUE         
KEY_CREATE_SUB_KEY    
KEY_ENUMERATE_SUB_KEYS
KEY_NOTIFY     
KEY_CREATE_LINK
KEY_WOW64_32KEY
KEY_WOW64_64KEY
KEY_WOW64_RES
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文