C++輔導(dǎo)-用C++Builder設(shè)定程序使用時(shí)間_第1頁
C++輔導(dǎo)-用C++Builder設(shè)定程序使用時(shí)間_第2頁
C++輔導(dǎo)-用C++Builder設(shè)定程序使用時(shí)間_第3頁
C++輔導(dǎo)-用C++Builder設(shè)定程序使用時(shí)間_第4頁
C++輔導(dǎo)-用C++Builder設(shè)定程序使用時(shí)間_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C+輔導(dǎo):用C+Builder設(shè)定程序使用時(shí)間愛護(hù)方法本文介紹4種利用C+Builder實(shí)現(xiàn)的愛護(hù)方法:利用注冊(cè)表限制程序使用的天數(shù),比方限制使用30天;利用注冊(cè)表限制程序使用的次數(shù),比方限制使用45次;設(shè)定程序使用的截止日期,比方設(shè)截止日期為2022年8月31日;限制每次使用程序的時(shí)間,比方一次允許使用50分鐘。這些愛護(hù)方式既可以單獨(dú)使用,也可以幾個(gè)同時(shí)使用實(shí)現(xiàn)綜合愛護(hù)。編程思路方法1和方法2在程序主窗體的OnCreate大事過程中,定義注冊(cè)表TRegistry類對(duì)象指針Reg:TRegistry 大Reg = new TRegistry;通過其屬性RootKey定位注冊(cè)表根鍵,如:Reg

2、RootKey = HKEY_USERS;可依據(jù)需要選擇利用OpenKey方法翻開根鍵下的一個(gè)自定義主鍵,例如:RegOpenKey( .DEFAULTMyprogramRecords , false)假設(shè)該主鍵不存在(即首次運(yùn)行本程序時(shí)),需要利用CreateKey ()方法創(chuàng)立該主鍵,并將其翻開,寫入子鍵及鍵值如下:/ “Count鍵值記錄本程序運(yùn)行次數(shù)Reg WriteInteger( Count ,1);/ “Flag鍵值記載本程序使用是否有過期的記錄Reg WriteInteger( Flag,0);/ “First鍵值記錄首次運(yùn)行本程序的日期Reg WriteDate( First

3、,Date();/ “Last鍵值記錄上一次運(yùn)行本程序的日期Reg WriteDate( Last,Date();通過對(duì)“First鍵值的讀取獲得首次運(yùn)行程序時(shí)的日期,再與系統(tǒng)當(dāng)前的日期進(jìn)展比擬,推斷是否超過指定的天數(shù)而打算是否終止程序的運(yùn)行,從而實(shí)現(xiàn)使用天數(shù)的限制。通過對(duì)“Count鍵值的讀取獲得程序使用的次數(shù),推斷是否超過指定的次數(shù)而打算是否終止程序的運(yùn)行,以實(shí)現(xiàn)使用次數(shù)的限制。此外,通過讀取“Flag鍵值可以了解程序是否有過期記錄,其值為1表示程序使用已經(jīng)過期;讀取“Last鍵值可以取得上一次使用本程序的日期。假如經(jīng)過推斷沒有超過規(guī)定的使用期限,則更新“Count和“Last的鍵值:使用

4、次數(shù)加1Reg WriteInteger( Count , Reg ReadInteger( Count )+ 1);/重新寫入當(dāng)前日期Reg WriteDate( Last,Date();方法3直接在主窗體的OnCreate大事過程中推斷當(dāng)前日期是否超過預(yù)定的截止日期,打算是否終止程序運(yùn)行。方法4利用一個(gè)時(shí)間組件,在它的OnTimer大事過程中隨時(shí)檢測(cè)本次程序運(yùn)行的時(shí)間(從程序啟動(dòng)到當(dāng)前)是否超過預(yù)設(shè)的時(shí)間,從而打算是否終止程序的運(yùn)行。詳細(xì)實(shí)現(xiàn)限制使用天數(shù)(如30天)在主窗體的OnCreate大事過程中參加代碼推斷程序的使用是否超過30天,假設(shè)是,則終止程序運(yùn)行并記錄“Flag鍵值為1。當(dāng)前

5、系統(tǒng)日期由VCL庫函數(shù)Date()獵取。主要代碼如下:定義日期型對(duì)象TDate firstDate, currentDate;獵取首次運(yùn)行程序日期firstDate=Reg ReadDate( First );獵取首次運(yùn)行程序日期currentDate=Date();if(currentDate.Val firstDate.Val 30)Application MessageBox(本程序使用已經(jīng)超過30天! n將要關(guān)閉程序.,“結(jié)果,MB_OK);Reg WriteInteger( Flag ,1);/終止程序運(yùn)行Application Terminate();限制使用次數(shù)(如45次)在主窗

6、體的OnCreate大事過程中參加代碼推斷程序的使用是否超過45次,假設(shè)是,則終止程序運(yùn)行并記錄“Flag鍵值為1。主要代碼如下:if(RegReadInteger( Count) 45)Application MessageBox(本程序使用已經(jīng)超過了 45次! n程序馬上關(guān)閉.,“結(jié)果,MB_OK);Reg WriteInteger( Flag ,1);Application Terminate(); 3.設(shè)置使用截止日期(如截止日期為2022年8月31日)該方法不需要修改注冊(cè)表,在主窗體的OnCreate大事過程中參加如下代碼即可:定義日期型變量(對(duì)象)TDate endDate, cu

7、rrentDate;設(shè)置日期分隔符DateSeparator = 一 ;設(shè)置日期表達(dá)格式ShortDateFormat = yyyy/mm/dd ;currentDate=Date();日期轉(zhuǎn)換endDate二StrToDate( “2022 08 31 );if(currentDate.Val endDate.Val)Application MessageBox(已經(jīng)超過期限,本程序已不能使用!n將要關(guān)閉程序.,“結(jié)果,MB_OK);file:/Reg WriteInteger( Flag ,1);Application Terminate();限制每次使用的時(shí)間(如限用50分鐘)該方法不需

8、要修改注冊(cè)表,在一個(gè)TTimer組件的OnTimer大事過程中,隨時(shí)檢測(cè)系統(tǒng)當(dāng)前時(shí)間與程序的啟動(dòng)時(shí)間之間是否超過50分鐘即可。其中程序的啟動(dòng)時(shí)間可以在主窗體的OnCreate大事過程中取得,這需要定義日期時(shí)間型全局變量startDateTime和currentDateTime:TDateTime startDateTime, currentDateTime;為獲得程序的啟動(dòng)時(shí)間,在主窗體的OnCreate大事過程中參加如下代碼:startDateTime = Now();在時(shí)間組件的OnTimer大事過程中參加以下代碼:currentDateTime=Now();if(currentDateT

9、ime.Val startDateTime.Val 50.0/(60 大 24)計(jì)時(shí)器停頓計(jì)時(shí),等待消息框關(guān)閉Timerl Enabled = false;Application MessageBox(本次程序已經(jīng)運(yùn)行了 50分鐘! n將要關(guān)閉程序.,“結(jié)果,MB_OK);關(guān)閉程序Close();幾點(diǎn)說明1 .可以將注冊(cè)表根鍵定位為其他的鍵(參見圖1),其主鍵的定義應(yīng)具有“共性化,也可以利用已有的主鍵,層次可以多些,這樣隱藏性更好,能限度地愛護(hù)應(yīng)用程序。為了防止倒撥系統(tǒng)時(shí)鐘至上一次使用程序的日期之前,通過讀取“Last鍵值可以對(duì)此進(jìn)展檢測(cè)和處理,代碼如下:TDate lastDate, currentDate;獲得上一次運(yùn)行本程序的日期lastDate = Reg ReadDate( Last );currentDate = Date();if(currentDate.ValMessageBox(系統(tǒng)時(shí)鐘的日期已被回?fù)埽?n本程序馬上關(guān)閉.,“結(jié)果,MB_OK);Reg WriteInteger( Flag ,1);終止程序的運(yùn)行Application Terminate();旦“Flag鍵值為1,說明程序已經(jīng)過期,可用以下代碼限制再次運(yùn)行程序:if(RegReadInteg

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論