我需要一个应用程序只能从特定的USB闪存驱动器上运行。 我做了一些测试与WMI Win32_Diskdrive类和PNPdeviceID财产。 这是报名申请到许可证服务器(Web服务)这个数据很不错的主意,但我寻找到增援,以使这一过程难以打破这一个的第二种方法。
我想创建驱动器中的第二个小隐藏分区,并在其中找到一个名称由PNPdeviceID或其他信息obteined序列。 任何其他的想法,方法或建议被接受。
提前致谢。
编辑:我已经知道从USB闪存驱动器的唯一ID,应用程序可以检查Interfacetype属性为“USB”。 I'm招收与PNPDeviceID的在Web服务支载许可证管理的哈希的应用。 我在寻找额外的第二验证方法。
您可以检查卷序列号,这将赶上随意复制到一个新格式化的卷,但它不会检测到完整的字节,确切的卷副本。
通过访问硬盘序列号保护软件
任何快速的方法来获得卷序列号?
您可以查看驱动器的具体类型,在程序运行:
string path = Process.GetCurrentProcess().MainModule.FileName;
FileInfo fileInfo = new FileInfo(path);
string driveRoot = fileInfo.Directory.Root.Name;
DriveInfo driveInfo = new DriveInfo(driveRoot);
if (driveInfo.DriveType != DriveType.Removable)
{
MessageBox.Show("Must run from removable drive");
Application.Exit();
}