たぶんレジストリについて書いた本がユーザー向けのマニュアル本ですよね。
Windowsのプログラム開発関係の本にプログラムの設定を保存するための方法としてどこかに必ず書いてあるとおもいますが。C++,VBどなど少し方法は違いますがWindows APIでできます。
方法としては
1. ユーザーが購入時にシリアル番号を発行します。
シリアル番号はたとえば10桁の数字にして頭8桁を
連番にして残り2桁は前8桁の各桁の数値を合計し
た数字というようにする(もっともこの決め方を
もっと複雑にしないとすぐに見破られます)。
2. プログラムを最初に起動したときに入力させる。
入力されたシリアルが上記条件にあっているかを
確認する。OKならシリアル番号をレジストリに
保存する。このときもともとのシリアル番号を
そのまま保存するのではなく暗号化して保存
します。こうれもいろいろありますが数十バイトの
データを作成してそこに紛れ込ませるなどです。
ただし、この程度の方法では確信犯には簡単に破ら
れてしまいます。
ハードウェアキーを使ったりLANカードのMACアドレスを参照してPCを特定するといった方法が使われます。
私はコピーする人も悪いけど、させる人にも大きな責任があるとおもいます。もし、登録時にシリアルを発行するならシリアルからユーザーが特定できるのでシリアル番号の流出による不正コピーが発覚した場合には本来の使用者にも流出の責任があるので損害賠償を請求しますとの警告を入れておくのも気休めにはなりそうです。
また、シリアル番号のを決める情報としてユーザー名を元にする手もあります。
つまり、シリアル番号のみ手に入れてもその人の名前を入れないとチェックが通らなくするわけです。こうすれば他人の名前を入れる事で違法コピーを意識させることになりますので少しは抑止効果があると思います。また、起動時のタイトル表示に名前を出せばより効果的だと思います。
コピーガードに関してはどこまでやってもいたちごっこだと思いますので、1本の単価が相当高い場合以外はハード的な手段が使いにくいのでこの辺が限界でしょう。
お礼
回答ありがとうございます。今すぐは回答の専門用語がわかりませんのでコメントしかねますが、後日調べてみてポイントを出します。