プログラムの起動時に、VB.NET または VB コードを取得して、ハードディスクのシリアル番号にアクセスしたいと考えています。海賊版を作ろうとする人から自分のソフトウェアを守るためです。
5 に答える
C# では、しかし、あなたはアイデアを得る。これには System.Management を使用する必要があります。
string driveLetter = Environment.SystemDirectory.Substring(0, 2);
string sn = new System.Management.ManagementObject("Win32_LogicalDisk.DeviceID=\"" + driveLetter + "\"").GetPropertyValue("VolumeSerialNumber").ToString();
他の人が指摘したように、これはこれを処理する最良の方法ではないかもしれません. ただし、それはあなたのビジネスです。
申し訳ありませんが、コードを提供することはできませんが、代わりに、この分野での以前の経験に基づいて警告を提供します.
多くのライセンス システムで使用されている「ハード ディスク シリアル番号」は、実際にはディスクに書き込まれるソフト番号であり、ハードウェアに組み込まれているわけではありません。
「ゴースト」ソフトウェアを使用して多くのデスクトップ マシンを迅速に大量生産したり、仮想化ソフトウェアを使用して多数のサーバーを迅速に大量生産した企業は、多くの場合、同一のハード ドライブ ID を持っていました。
そのため、企業が 1 つのコピーを購入して (おそらく意図せずに) 多くのマシンで使用することを防止することが目標である場合は注意してください。
多くの場合、ハードディスクをアップグレード/交換する必要があります。DMI のシリアル番号を使用することをお勧めします。
実際、私はソフトウェアを保護するためにディスクのシリアル番号を使用しています。
vb 6.0 では、FileSystemObject を作成して使用できます。これにより、ハード ドライブのシリアル番号にアクセスできるほか、その他のいくつかの機能を使用できます。
- 各ハードディスクの使用済みおよび空き容量の表示
- フォルダの作成、削除、移動
- ファイルとフォルダのコピー
- テキストファイルの印刷
- ...など
コードを記述してオブジェクトを宣言する前に、アクティブ化する必要があることに注意してください
Project--> References --> Microsoft Scripting Runtime
次のコードはドライブに関する情報を抽出しますが、ドライブのシリアル番号を抽出することもできます。
Sub ShowDriveInfo(path)
Dim fso, drv, bytesPerGB, freeGB, totalGB, s
s = ""
bytesPerGB = 1024 * 1024 * 1024
Set fso = CreateObject("Scripting.FileSystemObject")
Set drv = fso.GetDrive(fso.GetDriveName(path))
s = s & drv.Path & " - "
if drv.IsReady Then
freeGB = drv.FreeSpace / bytesPerGB
totalGB = drv.TotalSize / bytesPerGB
s = s & FormatNumber(freeGB, 3) + " GB free of "
s = s & FormatNumber(totalGB, 3) + " GB"
Else
s = s & "Not Ready"
End If
s = s & "<br />"
document.write (s)
End Sub
それでも必要な場合は、iranshahrinst@yahoo.com または masoodraji@aol.com までご連絡ください。ソースコードをお送りします。
あなたの質問に対する正確な答えを以下に見つけてください:
Function ShowDriveInfo(drvpath)
Dim fso, d, s, t
Set fso = CreateObject("Scripting.FileSystemObject")
Set d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)))
Select Case d.DriveType
Case 0: t = "Unknown"
Case 1: t = "Removable"
Case 2: t = "Fixed"
Case 3: t = "Network"
Case 4: t = "CD-ROM"
Case 5: t = "RAM Disk"
End Select
s = "Drive " & d.DriveLetter & ": - " & t
s = s & "<BR>" & "SN: " & d.SerialNumber
ShowDriveInfo = s
End Function