C#获取硬盘序列号的问题求助

具体问题是这样的:我用下面这段获取硬盘型信息的代码做成的exe文件,在机子上测试的时候,出现直接双击运行和用管理员身份运行结果不一样的情况,这个问题该怎么解决?

 1 public static String GetHardWareId()
 2         {
 3             String num = null;
 4             List<String> hdids = new List<string>();
 5             ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
 6             ManagementObjectCollection moc = mc.GetInstances();
 7             foreach (var item in moc)
 8             {
 9                 String hdid = (string)item.Properties["SerialNumber"].Value.ToString();
10                 if (!string.IsNullOrEmpty(hdid)) { hdids.Add(hdid); }
11             }
12             for (int i = 0; i < hdids.Count; i++)
13             { num += hdids[i].ToString().Replace(" ", ""); }
14             return num;
15         }

得到的结果是这样的:

时间: 2024-10-10 17:41:17

C#获取硬盘序列号的问题求助的相关文章

c/c++获取硬盘序列号

最近在接触软件注册模块,需要获取硬盘序列号来生成注册码. 硬盘序列号,英文名:Hard Disk Serial Number,该号是硬盘厂家为区别产品而设置的,是唯一的.网上搜索一下,发现获取硬盘序列号的代码遍地都是,但很多是错误的.典型代表就是使用GetVolumeInformation函数获取序列号.这种方法获取的是卷的序列号,即Volume Serial Number.硬盘格式化后,这种序列号将发生变化.本文描述的是获取硬盘唯一的物理序列号的方法. 获取硬盘序列号的方法:https://w

vc 获取 硬盘序列号 和 cpu

vc 获取 硬盘序列号 和 cpu 唯一iD的方法?如题---------网上找来很多资料 也没找到, 要支持xp win7 32/64 系统下都能获取 硬盘序列号 和cpu ID 哪位朋友帮帮忙:------解决方案--------------------不是很确定 没有测试64位的 http://blog.sina.com.cn/s/blog_612b382d0100efdt.html------解决方案--------------------CString cpu_id(){ int s1

java通过jni方式获取硬盘序列号(windows,linux)

linux系统java通过jni方式获取硬盘序列号 http://blog.csdn.net/starter110/article/details/8186788 使用jni在windows下读取硬盘序列号 http://www.iflym.com/index.php/code/201109070001.html 通常做java程序的开发人员都想过想要通过某种手段来保护自己的程序.一般的方式是通过授权,采取软件授权的方式.这个时间就需要读取客户机器上的一些关键信息,比如硬盘序列号,网卡,cpu信

在windows下获取硬盘序列号(win7 32位,Windows Server 64位测试,希望在其他平台测试,遇到问题的网友留言分享)

#include <Windows.h> #include <stdio.h> // IOCTL控制码 // #define DFP_SEND_DRIVE_COMMAND CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) // #define DFP_RECEIVE_DRIVE_DATA CTL_CODE(IOCTL_DISK_BASE, 0x0022,

MFC获取电脑硬盘序列号(附源码)

在新建的工程里面添加一个类 即:以下一个类 GetHDSerial.cpp // GetHDSerial.cpp: implementation of the CGetHDSerial class. // Download by http://www.newxing.com/ ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "

C# 获取CPU序列号、网卡MAC地址、硬盘序列号封装类,用于软件绑定电脑

1 using System.Management; 2 3 namespace GLaLa 4 { 5 /// <summary> 6 /// hardware_mac 的摘要说明. 7 /// </summary> 8 class HardwareInfo 9 { 10 /// <summary> 11 /// 取机器名 12 /// </summary> 13 /// <returns></returns> 14 public

完善DriveInfoEx源代码 获取计算机硬盘序列号

概述: 获取计算机硬盘序列号用途很多,在网上找到了一个C++的源代码DriveInfoEx(点这里查看).非常好的一个DLL,.NET项目可以直接引用,而且源代码里有示例. 但这个DLL在Win7非管理员权限下,无法获取硬盘序列号,所以我就完善了一下这个DLL,让其支持Win7 非管理员. 源代码: https://github.com/Xiongpq/DriveInfoExFull 编译时请注意 源代码内的一些方法,在VC90里已经被系统直接支持,所以就不用再重复定义,不然编译不过,所以如果在

linux c 获取硬盘的序列号

获取硬盘序列号的方法 找到指定硬盘的设备文件(如果是根目录的话,可以通过读取 /etc/mtab 文件获取),打开对应的设备文件.然后使用系统调用ioctl. 在这里 ioctl 的第二个参数为 HDIO_GET_IDENTITY (获得指定文件描述符的标志号) 第三个参数为 struct hd_driveid ,在 linux/hdreg.h 中. struct hd_driveid 结构声明如下: /* * Structure returned by HDIO_GET_IDENTITY, a

获取网卡MAC、硬盘序列号、CPU_ID、BIOS编号

抄来的 获取网卡MAC.硬盘序列号.CPU ID.BIOS编号 本文中所有原理及思想均取自网络,有修改.其中获取硬盘序列号.获取CPU编号.获取BIOS编号的原始代码的著作权归各自作者所有. 以下代码可以取得系统特征码(网卡MAC.硬盘序列号.CPU ID.BIOS编号) BYTE szSystemInfo[4096]; // 在程序执行完毕后,此处存储取得的系统特征码 UINT uSystemInfoLen = 0; // 在程序执行完毕后,此处存储取得的系统特征码的长度 // 网卡 MAC