どのコンピュータにも、特定のシリアル番号を持つコンポーネントがあります。 オペレーティングシステムのインストール時に割り当てられる番号もありますが、実際にはハードウェアに組み込まれている番号もあります。 C#を使用すると、複数の埋め込みシリアルを組み合わせて、一意のコンピューターIDを作成できます。
なぜユニークなシリアル? 単純な理由は、ソフトウェアを特定のコンピューターにブランド化するためです。 おそらく柔軟性のないライセンスシステムであり、使用方法によっては非常に効果的です。
この記事では、ハードドライブとCPUの2つのシリアルを使用します。 どちらも、組み込みのC#クラスSystem.Managementを使用して取得されます。
Visual Studio 2005(いずれかのエディション)で新しいプロジェクトを作成すると、「usingSystem.Management」という行が機能しないことがわかります。 手動で追加する必要があります。
- ソリューションエクスプローラーに移動します
- [参照]を右クリックして、[参照の追加…]をクリックします。
- [.Net]タブからSystem.Managementを見つけます。
一度設定すると、ハードウェアIDを簡単に取得できます。
ハードドライブIDは明らかにハードドライブに依存します。 擬似コードは次のとおりです。
- 文字列「win32_logicaldisk.deviceid =」を使用してManagementObjectを作成します[drive letter here]: “
- インデックスが「VolumeSerialNumber」のシリアルにアクセスします(例:ディスク)[“VolumeSerialNumber”] ここで、diskはManagementObjectです。
CPUIDも実際にはかなり柔軟です。 最近の多くのコンピューターには、複数のCPUが搭載されています。 私の例のように最初のものを使用するか、複数のものを使用します。
- 文字列「win32_processor」を使用してManagementObjectを作成します
- 利用可能なプロセッサを確認します
- 次のようにプロパティにアクセスします:managObject.Properties[“processorID”]
それらを組み合わせるのは単純な場合も複雑な場合もあります。 それらを連続して追加するだけで問題なく機能します。 私の例では、最初に使用可能なドライブと最初のCPUのIDが来る前に、いくつかの冗長な0が削除されます。
数字がどのように見えるかを試してみてください。