By | March 1, 2022

どのコンピュータにも、特定のシリアル番号を持つコンポーネントがあります。 オペレーティングシステムのインストール時に割り当てられる番号もありますが、実際にはハードウェアに組み込まれている番号もあります。 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が削除されます。

数字がどのように見えるかを試してみてください。