スマート駄目リーマンの忘備録

旅行記、キャリア論、世相分析など思ったことを書き連ねます

VBプログラムの流用防止策

 VBで作成したアプリを客先に納品した際にコピーされて多数に流用されては困る。ここで簡単ではあるが、特定のMACアドレスに使用を限定し、流用を防止する簡易プログラムを紹介する。

 

・プログラム概要 

 客先納品時に使用するパソコンの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

 

'プログラム終了

 

新生活をお得に始めるならモッピー 新規申込・切替でポイントが貯まる!