[DllImport("kernel32.dll")]
privatestaticexternintGetVolumeInformation(
stringlpRootPathName,
stringlpVolumeNameBuffer,
intnVolumeNameSize,
refintlpVolumeSerialNumber,
intlpMaximumComponentLength,
intlpFileSystemFlags,
stringlpFileSystemNameBuffer,
intnFileSystemNameSize
);
privatestringGetVolOf(stringdrvID)...{
constintMAX_FILENAME_LEN=256;
intretVal=0;
inta=0;
intb=0;
stringstr1=null;
stringstr2=null;
inti=GetVolumeInformation(
drvID+@":",
str1,
MAX_FILENAME_LEN,
refretVal,
a,
b,
str2,
MAX_FILENAME_LEN
);
returnretVal.ToString("x");
}
调用方法:例如C盘:GetVolOf("C");
不过无论你的注册算法如何精妙,始终会被破解。因为你的算法始终在软件客户端,cracker总是有机会找到你的注册算法,做出注册机来。看看网上流传的五花八门的注册机就知道了。个人觉得如果做依赖Web的程序,最好还是把注册算法写在Web Service里面,这样cracker就没法从本地破解注册算法了,这样就大大增加了安全性。