何如做一個限制使用SOFTWARE的次數或日子的application呢? |
答題得分者是:christie
|
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
|
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
uses Registry;
type TForm1 = class(TForm) . . . procedure FormCreate(Sender: TObject); private { Private declarations } procedure CheckReg(); procedure CreateReg(); public { Public declarations } end; var Form1: TForm1; PName:string; //存放用戶名 PPass:integer;// 和註冊碼。 Procedure TForm1.CreateReg(); // 建用戶資訊。 var Rego:TRegistry; begin Rego:=TRegistry.Create; Rego.RootKey:=HKEY_USERS; rego.OpenKey('.DEFAULT\Software\LASoft\UWE30K',True);//鍵名?AngelSoft\Demo,可自行修改。 Rego.WriteString('Name',PName); //寫入用戶名。 Rego.WriteInteger('Pass',PPass);//寫入註冊碼。 Rego.Free; //ShowMessage('程 式 已 經 註 冊, 謝 謝!'); // end; Procedure TForm1.CheckReg();// 檢 查 程 式 是 否 在 註 冊 表 中 註 冊。 var Rego:TRegistry; y,m,d:word; s,regs:string; begin Rego:=TRegistry.Create; Rego.RootKey:=HKEY_USERS; decodedate(now,y,m,d); s:=format('%0.2d%0.2d%0.2d',[y-1911,m,d]); IF Rego.OpenKey('.DEFAULT\Software\LASoft\UWE30K',False) then begin Form1.Caption:='軟體已經註冊'; Label3.Caption:=rego.ReadString('Name'); //讀用戶名。 Label2.Caption:=IntToStr(Rego.ReadInteger('Pass')); //讀註冊碼。expire_date regs := IntToStr(Rego.ReadInteger('Pass')); rego.Free; if(s>regs) or (regs>'971231') then application.Terminate end else begin // Form1.Caption:='軟 體 未 註 冊,請 註 冊'; // application.Terminate; decodedate(now 90,y,m,d);//免費使用 limit 90 days or 97.12.31 PName:='LA01'; PPass:=(y-1911)*10000 m*100 d; CreateReg end; end; procedure TForm1.FormCreate(Sender: TObject); begin CheckReg; . . . ===================引 用 chkkevin 文 章=================== 其實,我的意思是做一個像用戶未註冊而有使用限制,如使用期間或次數~ 請問各位師兄們,有否此經驗可以分享一下呢?
------
What do we live for if not to make life less difficult for each other? |
hotswin
中階會員 發表:72 回覆:92 積分:52 註冊:2003-11-06 發送簡訊給我 |
|
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
非常感謝,這裡真是一個好地方,高手云集,又慷慨就義
小弟好明顯是一個新手,不過假以時日,希望有一天也可以有能力幫助這裡有需要的人~ 不好意思想問問以下的CODE,rego.OpenKey('.DEFAULT\Software\LASoft\UWE30K',True),是一條default 的path 用來儲存user name和password 嗎?假如compile program後,安裝到別人的機上時要不要copy 當中內容 到software 的使用folder中呢? Rego.RootKey:=HKEY_USERS; rego.OpenKey('.DEFAULT\Software\LASoft\UWE30K',True);//鍵名?AngelSoft\Demo,可自行修改。 Rego.WriteString('Name',PName); //寫入用戶名。 Rego.WriteInteger('Pass',PPass);//寫入註冊碼。 小弟暫時未想結案,希望可以再聽取多一點意見。
------
獨學無友則孤陋寡聞,相識滿天下能知天下事 小弟是來自香港的~~多多指教 |
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
rego.OpenKey('.DEFAULT\Software\LASoft\UWE30K',True);
會寫一筆registry您可以用REGEDIT在HKEY_USERS找到該值。 ===================引 用 chkkevin 文 章=================== 非常感謝,這裡真是一個好地方,高手云集,又慷慨就義 小弟好明顯是一個新手,不過假以時日,希望有一天也可以有能力幫助這裡有需要的人~ 不好意思想問問以下的CODE,rego.OpenKey('.DEFAULT\Software\LASoft\UWE30K',True),是一條default 的path 用來儲存user name和password 嗎?假如compile program後,安裝到別人的機上時要不要copy 當中內容 到software 的使用folder中呢? Rego.RootKey:=HKEY_USERS; rego.OpenKey('.DEFAULT\Software\LASoft\UWE30K',True);//鍵名?AngelSoft\Demo,可自行修改。 Rego.WriteString('Name',PName); //寫入用戶名。 Rego.WriteInteger('Pass',PPass);//寫入註冊碼。 小弟暫時未想結案,希望可以再聽取多一點意見。
------
What do we live for if not to make life less difficult for each other? |
chkkevin
一般會員 發表:34 回覆:64 積分:19 註冊:2007-05-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |