3

プログラムの起動時に、VB.NET または VB コードを取得して、ハードディスクのシリアル番号にアクセスしたいと考えています。海賊版を作ろうとする人から自分のソフトウェアを守るためです。

4

5 に答える 5

7

C# では、しかし、あなたはアイデアを得る。これには System.Management を使用する必要があります。

string driveLetter = Environment.SystemDirectory.Substring(0, 2);
string sn = new System.Management.ManagementObject("Win32_LogicalDisk.DeviceID=\"" + driveLetter + "\"").GetPropertyValue("VolumeSerialNumber").ToString();

他の人が指摘したように、これはこれを処理する最良の方法ではないかもしれません. ただし、それはあなたのビジネスです。

于 2008-11-26T03:20:51.503 に答える
3

申し訳ありませんが、コードを提供することはできませんが、代わりに、この分野での以前の経験に基づいて警告を提供します.

多くのライセンス システムで使用されている「ハード ディスク シリアル番号」は、実際にはディスクに書き込まれるソフト番号であり、ハードウェアに組み込まれているわけではありません。

「ゴースト」ソフトウェアを使用して多くのデスクトップ マシンを迅速に大量生産したり、仮想化ソフトウェアを使用して多数のサーバーを迅速に大量生産した企業は、多くの場合、同一のハード ドライブ ID を持っていました。

そのため、企業が 1 つのコピーを購入して (おそらく意図せずに) 多くのマシンで使用することを防止することが目標である場合は注意してください。

于 2008-11-26T01:41:14.903 に答える
2

多くの場合、ハードディスクをアップグレード/交換する必要があります。DMI のシリアル番号を使用することをお勧めします。

于 2008-11-26T01:39:57.853 に答える
1

実際、私はソフトウェアを保護するためにディスクのシリアル番号を使用しています。

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 までご連絡ください。ソースコードをお送りします。

于 2011-03-12T21:34:57.040 に答える
0

あなたの質問に対する正確な答えを以下に見つけてください:

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
于 2011-03-12T21:37:59.080 に答える