国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

在Delphi中編制軟件版權保護控件

在Delphi中編制軟件版權保護控件

更新時間:2022-05-09 文章作者:未知 信息來源:網絡 閱讀次數:

一、概述
軟件作為一種人類智力勞動成果的一種表現形式,融會了設計者和開發者辛勤的勞動和汗水,然而,由于用戶觀念上的差異和盜版軟件的泛濫,軟件開發者的權益往往得不到有效的保護,因此,作為必要的手段-----軟件的自身保護也就在特定的環境下被重視起來。
然而,正所謂,“魔高一尺,道高一丈”,保護和破解的矛盾關系在始終持續著,要想找到一種萬能的保護方法,卻也不是那么簡單的事。但是,如果開發者使用的保護手段連一般用戶都能破解的話(如:修改系統日期),這樣的保護則顯然達不到保護軟件版權的目的。
基于此,筆者利用Delphi5.0面向對象的特性,設計開發了一個實用的版權保護控件,以為程序開發者提供一種簡易的軟件保護手段。
二、實現方法
1.在Delphi5.0中新建一個單元文件,書寫代碼如下,保存:
unit RegObj;

interface

uses
Windows, Messages, SysUtils, Classes, Forms;

type
TRegObj = class
private
FSerial: string; //主板序列號
FKey: string; //密碼
FMaxTimes: Integer; //最大運行次數
FCompany: string; //公司名稱
FEmail: string; //聯系用的電子郵件
protected
procedure SetSerial; //取得主扳的序列號
procedure GetKey; //從用戶序列號文件中讀取序列號
function GetTimes: Integer; //從文件中讀取程序的運行次數
function CheckKey: Boolean; //檢查序列號和密碼是否匹配的函數
public
constructor Create;
function Execute: Boolean; //運行對象方法
published
property Company: string read FCompany write FCompany;
property MaxTimes: Integer read FMaxTimes write FMaxTimes;
property Email: string read FEmail write FEmail;
end;

implementation

//TRegObj.
constructor TRegObj.Create;
begin
inherited;
end;

function TRegObj.GetTimes: Integer;
Const
//用于存儲運行次數的文件,開發人員可自定義或使用注冊表存儲運行次數
//起此名字用于迷惑破解者,使用前不要和系統的動態鏈接庫同名
Tmp = 'ispnet.dll';
var
Ch: Char;
Dir: array [0..255] of Char;
Fn: string;
I : Integer;
List: Tstrings;
begin
//取得Windows系統的目錄
GetSystemDirectory(@Dir, 255);
For I := 0 to 255 do
begin
if Ord(Dir[I]) = 0 then Break;
Fn := Fn + Dir[I];
end;
Fn := Fn + '\' + Tmp;
try
List := TStringList.Create;
if Not FileExists(Fn) then
Ch := Chr(1)
else
begin
List.LoadFromFile(Fn);
Ch := List.Text[1];
Ch := Chr(Ord(Ch) + 1);
end;
List.Text := Ch;
//存儲運行次數
List.SaveToFile(Fn);
Result := Ord(Ch);
finally
List.Free;
end;
end;

procedure TRegObj.SetSerial;
begin
//取得主板的序列號
FSerial := String(Pchar(Ptr($FEC71)));
end;

//取得密碼
procedure TRegObj.GetKey;
const
Sn = 'Key.dat';
var
List: TStrings;
Fn, Path: string;
begin
Path := ExtractFilePath(Application.ExeName);
Fn := Path + Sn;
if Not FileExists(Fn) then
begin
FKey := '';
Exit;
end;
try
List := TStringList.Create;
List.LoadFromFile(Fn);
FKey := List.Values['Key'];
finally
List.Free;
end;
end;

function TRegObj.CheckKey: Boolean;
begin
//開發人員根據自己的需要進行修改,在這里是為了簡單起見
Result := FKey = FSerial;
end;

function TRegObj.Execute: Boolean;
var
Msg: string;
T: Integer;
begin
T := GetTimes;
GetKey;
SetSerial;
if FKey <> FSerial then
begin
Msg := ' 您這是第' + IntToStr(T) + '次運行此程序(最大次數:' + IntToStr(FMaxTimes) + ')!';
Application.MessageBox(PChar(Msg), '用戶信息', Mb_Ok + Mb_IconWarning);
Msg := '歡迎使用' + Company + '的軟件,如果您覺得滿意的話,請注冊或購買正版軟件!';
Application.MessageBox(PChar(Msg), '建議', Mb_Ok + Mb_IconInformation);
if T > FMaxTimes then
begin
if Application.MessageBox(' 是否注冊?', '注冊', Mb_YesNo + Mb_IconQuestion) = Id_Yes then
begin
Msg := '您的注冊號是:“' + FSerial + '”' + Chr(13) + Chr(10) +
'請您將以上序列號通過電子郵件寄給以下信箱:' + FEmail;
Application.MessageBox(PChar(Msg), '軟件 注冊', Mb_Ok + Mb_Iconinformation);
end;
Application.Terminate;
end;
end;
end;

end.
2.控件的使用
在Delphi5.0中新建一個應用程序,在程序的引用單元中加入上述單元的引用,在主窗體的OnCreate事件中編寫如下代碼:
procedure TForm1.FormCreate(Sender: TObject);
var
AObj: TRegObj;
begin
try
AObj := TRegObj.Create;
AObj.MaxTimes := 30;
AObj.Company := '吉星軟件工作室';
AObj.Email := 'test@1112.net';
AObj.Execute;
finally
AObj.Free;
end;
end;
三、結束語
上述控件通過取得用戶計算機的主板序列號作為注冊碼,通過文件存儲程序運行次數和密鑰,防止了同樣的注冊碼和密鑰在不同的計算機上都可以使用的問題,而且,用戶通過簡單的日期修改無法使程序繼續,基本達到了軟件版權保護的目的。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        国产欧美一区二区三区鸳鸯浴 | 亚洲一区二区三区四区在线免费观看| 国产成a人亚洲精| 久久精品亚洲国产奇米99| 成人高清免费观看| 一区二区在线看| 欧美日本免费一区二区三区| 日本欧美在线看| 久久久久国产免费免费| 成人黄色网址在线观看| 亚洲第一综合色| 国产日韩欧美在线一区| 欧美亚洲精品一区| 国产一区二区三区精品视频| 亚洲另类色综合网站| 91精品久久久久久久久99蜜臂| 国产一区二区三区综合| 亚洲国产裸拍裸体视频在线观看乱了| 欧美哺乳videos| 在线观看亚洲专区| 国产.欧美.日韩| 日韩av电影免费观看高清完整版| 国产日韩欧美高清| 欧美精选一区二区| 99久久久免费精品国产一区二区| 日本欧美一区二区三区| 国产精品少妇自拍| 日韩一级片网址| 在线观看日韩电影| 成人精品视频一区二区三区尤物| 日韩精品91亚洲二区在线观看| 国产精品入口麻豆九色| 日韩一区二区电影| 在线国产电影不卡| 91丨porny丨最新| 国产不卡高清在线观看视频| 免费在线视频一区| 亚洲第一综合色| 一区二区成人在线观看| 国产精品久久99| 日本一区二区免费在线| 久久免费偷拍视频| 精品美女被调教视频大全网站| 色激情天天射综合网| 成人黄色大片在线观看| 国产乱码精品一区二区三| 麻豆精品一二三| 奇米色一区二区| 日韩经典一区二区| 亚洲成人一区在线| 午夜激情久久久| 午夜成人在线视频| 亚洲国产一区二区在线播放| 亚洲免费观看高清完整版在线观看 | eeuss国产一区二区三区| 美日韩一区二区三区| 午夜激情久久久| 日韩精品电影在线| 蜜桃视频在线观看一区| 日韩和欧美一区二区三区| 日韩影院免费视频| 免费成人在线视频观看| 免费欧美在线视频| 国产福利一区二区三区在线视频| 国产曰批免费观看久久久| 国产精品一级二级三级| 国产成人日日夜夜| 国产成人精品免费看| 成人av免费在线| 色噜噜夜夜夜综合网| 欧美性生交片4| 日韩精品一区二区三区三区免费| 精品国产网站在线观看| 国产精品色一区二区三区| 中文字幕一区av| 亚洲国产综合91精品麻豆| 五月婷婷激情综合| 国产一区二区中文字幕| 91免费看片在线观看| 欧美日韩高清一区二区不卡| 精品久久久久久最新网址| 国产精品美女久久久久久久| 亚洲成人动漫在线观看| 国产精品自产自拍| 在线精品视频免费播放| 久久色视频免费观看| 亚洲三级免费观看| 青青青伊人色综合久久| 成人福利视频在线看| 在线影院国内精品| 精品少妇一区二区三区| 国产精品区一区二区三| 亚洲成人av一区| 成人午夜视频在线观看| 精品视频一区三区九区| 久久久久久久久久久久久女国产乱| 亚洲欧美欧美一区二区三区| 蜜乳av一区二区三区| 色综合中文字幕| 欧美成人免费网站| 亚洲一区二区三区在线播放| 久久精品理论片| 欧洲激情一区二区| 国产精品久久久久久久久免费樱桃 | 国产精品538一区二区在线| 一本大道久久精品懂色aⅴ| 久久综合国产精品| 亚洲成人av电影在线| 色偷偷久久一区二区三区| 国产女同性恋一区二区| 另类的小说在线视频另类成人小视频在线 | 成人av电影免费观看| 欧美一级一区二区| 亚洲一区二区三区四区的| 国产mv日韩mv欧美| 精品成a人在线观看| 男女男精品视频网| 欧美一区二区大片| 丝袜美腿亚洲色图| 欧美日韩一区小说| 亚洲精品国产一区二区精华液 | 亚洲国产视频在线| 91一区二区在线| 中文字幕一区二| 99精品久久久久久| 国产精品免费人成网站| 成人视屏免费看| 国产午夜精品理论片a级大结局| 免费成人av资源网| 欧美一区二区三区不卡| 首页欧美精品中文字幕| 欧美精品丝袜中出| 视频一区中文字幕国产| 欧美三片在线视频观看| 亚洲国产欧美在线人成| 欧美吞精做爰啪啪高潮| 午夜久久电影网| 91精品国产91久久久久久一区二区 | 中文字幕乱码亚洲精品一区| 从欧美一区二区三区| 中文字幕在线免费不卡| 99免费精品视频| 亚洲乱码国产乱码精品精小说 | 久久九九久久九九| 成人午夜免费视频| 亚洲日本乱码在线观看| 欧美在线播放高清精品| 青娱乐精品视频在线| 国产日韩欧美在线一区| 91黄色免费看| 麻豆高清免费国产一区| 久久久久久久久久久久久久久99| 成人av在线一区二区| 亚洲国产中文字幕| 久久亚洲一级片| 一本大道av伊人久久综合| 日韩福利视频网| 国产免费久久精品| 色噜噜狠狠色综合中国| 免费高清在线一区| 中文字幕一区不卡| 欧美高清视频在线高清观看mv色露露十八| 性做久久久久久久免费看| 26uuu久久综合| 色综合视频在线观看| 日本视频中文字幕一区二区三区| 久久久午夜精品| 欧美日韩综合在线| 国产在线精品一区二区不卡了| 亚洲少妇30p| 精品国产自在久精品国产| 91麻豆蜜桃一区二区三区| 免费高清不卡av| 伊人夜夜躁av伊人久久| 26uuu亚洲婷婷狠狠天堂| 欧美三级欧美一级| gogogo免费视频观看亚洲一| 免费高清在线一区| 亚洲综合一区二区三区| 国产日韩av一区二区| 在线不卡免费av| 99久久久久免费精品国产| 美女视频网站久久| 亚洲第一在线综合网站| 国产免费久久精品| 精品欧美久久久| 在线播放91灌醉迷j高跟美女| 99riav一区二区三区| 黄网站免费久久| 麻豆一区二区在线| 香蕉影视欧美成人| 一二三区精品视频| 亚洲同性同志一二三专区| 久久久久国产精品麻豆ai换脸| 欧美伦理影视网| 欧美色图激情小说| 99精品视频在线观看免费| 国产91清纯白嫩初高中在线观看 | 日韩高清中文字幕一区| 亚洲欧美日韩国产成人精品影院|