どのように独自の機械の署名なくWMI?
-
22-08-2019 - |
解決
私は、ライセンスのプロジェクトのためにこれを数回やりました。ハードドライブのシリアル番号を使用する場合:
private static extern long GetVolumeInformation(string PathName, StringBuilder VolumeNameBuffer, UInt32 VolumeNameSize, ref UInt32 VolumeSerialNumber, ref UInt32 MaximumComponentLength, ref UInt32 FileSystemFlags, StringBuilder FileSystemNameBuffer, UInt32 FileSystemNameSize);
関数によって返されるVolumeSerialNumber
を使用します。
また、あなたは(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId
に位置)WindowsのプロダクトIDを使用してについて考えていることがあります。注意してください、Windows XPのユーザーの大多数は、コピーを海賊版と同じプロダクトキーを共有しています。
他のヒント
あなたはユニークなキーを作成するために、異なるハードウェアの情報を組み合わせることができます。
は、例えば、CPU IDは、MACがそれらを暗号化し、それらを組み合わせて、あなたがそれらを取得するなどなど対処し、このマシンのハードウェアのセットアップのユニークな表現を持っています。
テーマについてグーグルで試してみてください:ハードウェア情報を読み取る方法
。私はCodeProjectのに非常に便利なポストがある見ることができるものから:取得する方法ハードウェア情報(CPUのID、メインボード情報、ハードディスクのシリアル、システム情報、...)のます。
を見通すのkernel32とuser32図書館があります。してさまざまなツ EnumDisplayDevices
, GetLogicalDrives
, GlobalMemoryStatus
, GetVolumeInformation
, などがあります。私のように利用 PInvoke 閲覧のAPIではC#のラッパーコードがMSDNまで全てのWindows apiを提供します。
@novatrustの回答に関するハードドライブシリアルはいつも組み合わせることができます。私の GetVolumeInformation
APIへのリンクpinvokeが簡単にGoogleべきます。