在 .NET 中,如何在不使用 WMI 的情况下找到硬盘设备序列号?
我想从硬盘获取硬连线序列号,但不使用 WMI。 我尝试使用 WMI 代码,但它在我的机器上肯定不起作用。 那么.NET 中有没有其他方法可以查找物理硬盘的序列号呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想从硬盘获取硬连线序列号,但不使用 WMI。 我尝试使用 WMI 代码,但它在我的机器上肯定不起作用。 那么.NET 中有没有其他方法可以查找物理硬盘的序列号呢?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
这应该有助于开始:
如何在没有 WMI 的
情况 下获取物理 HDD 序列号 WMI 不返回数据的问题; 您确定如何获得从 WMI 获取数据的正确权限吗? 您可以使用 WMI 工具< /a> 检查/修复此问题。
This should help get started:
How to get Physical HDD serial number without WMI
Regarding your problem with WMI not returning data; Are you sure how to the right privileges to get data from WMI? You can use WMI Tools to check/fix this.
使用 createfile 作为如下所示。 它可能需要管理权限。在代码中添加 4 个文本框和一个按钮。
Use the createfile as shown below. It may require administrative permissions.Add 4 text boxes and a button in your code.
可以在这里找到完美的工作解决方案:
http: //www.codeproject.com/Articles/16941/Get-Physical-HDD-Serial-Number-without-WMI
[编辑]
抱歉,错过了对此的引用已经提交。
A perfectly working solution can be found here:
http://www.codeproject.com/Articles/16941/Get-Physical-HDD-Serial-Number-without-WMI
[edit]
Sorry, missed that a reference to this has already been submitted.
您可以使用:
GetVolumeInformation
Win32 API 函数来获取此信息,如果您必须避免 WMI。 链接页面提供了 API 函数的完整声明签名(VB 和 C# 格式)以及示例代码。
You can use the:
GetVolumeInformation
Win32 API function to get this information, if you must avoid WMI. The linked page gives full the declaration signature (in both VB & C#) for the API function along with sample code.
你最好的选择是Windows api,
我做了一个简单的搜索并得到了这个
一般处理器信息以及阅读这篇文章
Your best options is windows api,
i made a simple search and got this
General processor info and also read this post
我在我的项目中使用硬盘固件轨道。 我在 MDI 表单后面进行编程以查找 HDD 固件编号,然后在公司计算机的所有提供的 HDD 编号上进行循环,如果它与这些提供的 HDD 固件编号中的任何一个匹配,则运行应用程序并加载 MDI 表单,否则会提供一个消息“该应用程序未在此计算机上注册,请致电 Afridi 先生在 00923339176357 上注册该应用程序。我的电子邮件地址是 [电子邮件受保护]。我将发送获取如何编程专业硬盘固件编号以及如何阻止其他人非法使用您的应用程序的完整源代码。
cfemail= " 公司立即计算硬盘固件,让应用程序首先选择硬盘固件编号,将其存储在变量中,然后选择该变量的值(字符串值)并使用 OR 逻辑对每个硬盘编号逐一循环操作员。 如果它在具有可变值的公司硬盘编号中找到匹配的编号,则应用程序应加载主表单(mdi),否则通知用户进行注册。
示例代码将使用 vb6 提供。 只需了解如何将非托管代码调用到托管 .net 应用程序中,您以后就可以轻松地在 vb.net 中进行编程。 在本例中为 .dll。
I am using hdd firmware track in my projects. I programmed behind the mdi form to look for hdd firmware number, then its looping on all the provided numbers of hdds of companies computers and if it matches anyone amongst these provided hdds firmware numbers, then run the applicatoin and load mdi form other wise provides a message "The application is not registed on this machine, please call Mr. Afridi to register this application on 00923339176357. My email address is [email protected]. I will send complete source code of fetching how to programm professionaly hdd firmware number and how to stop others by using your app illegaly.
One lovely thing that you should specify all the company computers hdd firmware at once and let the application first pick the hdd firmware number, store it in a variable and then pick the value of this variable(a string value) and loop it one by one with each hdd number by using OR logical operator. If it finds a matching number amongst the companies hdds numbers with variable value, then app should load main form(mdi) other wise notify the user for registration.
The sample code will be provided using vb6. You can easily programm later on in vb.net just by understanding how to call unmanaged code in to a managed .net application. In this case a .dll.