我有一个 C# win 表单应用程序。在其中,我通过使用这种方法获得了一个独特的 HDD 系列。
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern bool GetVolumeInformation(string Volume, StringBuilder VolumeName,
uint VolumeNameSize, out uint SerialNumber, uint SerialNumberLength,
uint flags, StringBuilder fs, uint fs_size);
音量变量为Path.GetPathRoot(Environment.CurrentDirectory)
我得到的序列为SerialNumber.ToString("X")
工作正常,但情况是;
- 我已共享应用程序文件夹。当我运行时,我得到
XXXXXXXX
了串行EXE
- 当另一个人从我的共享路径运行应用程序时,他会得到
00000000
串行 - 但是,当另一个用户映射此文件夹并运行应用程序时,他将获得
XXXXXXXX
串行
那么这个问题的原因是什么?有没有更好的使用方法?
我提到了WMI,但不适合我的需要。