ソフトウェアの著作権が尊重される時代において、電子的に登録されたソフトウェアの適用はますます普及しています。その外観により、ユーザーはプログラムの無制限の機能をある程度理解することができ、宣伝と普及に役割を果たし、また制作者の重要な利益も保護されます。では、ソフトウェアの電子登録バージョンを作成するにはどうすればよいでしょうか?
いくつかの調査の後、作成者は VB を使用してソフトウェアの電子登録バージョンを作成しました。
設計原則
API の「GetVolumeInformation」関数を使用して、ユーザーのマシンのハードディスクのシリアル番号を機能コードとして抽出します。このコードは登録時に送信され、ソフトウェアの著作権所有者によって計算されて、最終的にソフトウェアに登録コードが与えられます。ユーザーは登録コードを入力して登録プロセス全体を完了します(説明を簡単にするために、この例では、機能コードから 101 を引いた値が登録コードとして使用されます)。
新しいモジュールファイルを作成する
新しいモジュール ファイルを作成し、次の宣言されたステートメントと定数を Module1.Bas モジュールに追加します。
関数 GetVolumeInformation Lib "kernel32" エイリアス "GetVolumeInformationA" を宣言します
(文字列としての ByVal lpRootPathName、文字列としての ByVal lpVolumeNameBuffer、ByVal
nボリューム名サイズの長さ、lpボリュームシリアル番号の長さ、lp最大コンポーネント長の長さ
Long、lpFileSystemFlags As Long、ByVal lpFileSystemNameBuffer As String、ByVal
nFileSystemNameSize (長さ) (長さ)
グローバル GetVal As Long
プログラミングの際は、宣言文を同じ行に記述するように注意してください。
フォーム設定
Form1 に 2 つのテキスト ボックスを追加し、Name プロパティをそれぞれ Text1 と Text2 に設定します。別のボタンを追加して、Name プロパティを Command1 に設定します。
コードを追加
次のプログラム コードを Form1 の Form1_Load イベントに追加します。
プライベートサブフォーム_Load()
文字列としての Dim TempStr1 * 256
文字列としての Dim TempStr2 * 256
ディム TempLon1 限り
ディム TempLon2 限り
……
登録するかどうかについては、ここでは説明しません。
……
GetVolumeInformation("C:", TempStr1, 256, GetVal, TempLon1, TempLon2, TempStr2, 256) を呼び出します。
Text1.Text = GetVal 'ローカル C ドライブのシリアル番号をテキスト ボックス 1 に抽出します
エンドサブ
次のプログラム コードを Command1 の Command1_Click イベントに追加します。
プライベートサブコマンド1_Click()
If Text2 <> CStr(GetVal) then
MsgBox 「登録コードが間違っています。入力が正しいかよく確認してください。」
それ以外
MsgBox 「登録が完了しました。ソフトウェアを再起動してください。」
……
(将来的にソフトウェアの機能が制限されないように、正しい登録情報を書き込んでください。具体的な方法は好みに応じて設定できます。)
……
終了の場合
エンドサブ
この時点で、プログラムを実行できます。ハードディスクのシリアル番号を使用してソフトウェアの電子登録版を作成する機能を実装しただけであることがわかります。