VBで作成したアプリを客先に納品した際にコピーされて多数に流用されては困る。ここで簡単ではあるが、特定のMACアドレスに使用を限定し、流用を防止する簡易プログラムを紹介する。
・プログラム概要
客先納品時に使用するパソコンのMACアドレスを確認し、プログラムに反映させる。ソフト起動時にMACアドレスを調査し、登録値と照合する。
11:7D:FC:15:G3:9B の事例
・以下でやってること
MACアドレスを:で分割したものを配列に格納する。配列の要素と登録されたMACアドレスの:で区切られた要素を一つ一つ照合する。一つでも違う場合ににはプログラムを終了させる。
・プログラム(以下から、MACアドレスを適宜変えればコピペで使用可能)
'プログラム開始
'Windowsの情報
Dim objNetwork As Object
'Windowsの情報取得文 保存変数
Dim strNetworkSql As String
'取得したMACアドレス文字
Dim strMacAdr As String
'MACアドレスの要素
Dim stMac() As Object
'Windowsの情報取得文 組み立て
strNetworkSql = "SELECT * FROM Win32_NetworkAdapter WHERE MACAddress IS NOT NULL"
'Windowsの情報取得文を使い情報を取得(1個目のみ)
For Each objNetwork In GetObject("winmgmts:").ExecQuery(strNetworkSql)
strMacAdr = objNetwork.MACAddress
Exit For
Next
'メッセージボックスへMACアドレスを表示(この一文は無くても良い)
MsgBox(strMacAdr)
':で分割して、配列化
stMac = Regex.Split(strMacAdr, ":")
'配列の要素を一つずつ、登録のMACアドレスの:で区切られた要素毎に照合する。
(一つでも違えば終了)
If stMac(0) <> "11" Or stMac(1) <> "7" & "D" Or stMac(2) <> "F" & "C" Or stMac(3) <> "15" Or stMac(4) <> "G" & "3" Or stMac(5) <> "9" & "B" Then
End
End If
'プログラム終了