私は 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を紹介しましたが、私のニーズには合いませんでした。