版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度嬰幼兒游泳館加盟服務(wù)合同4篇
- 二零二五年度實(shí)木地板翻新與保養(yǎng)服務(wù)合同4篇
- 2025年代理協(xié)議示范文本-辦公文具代理合同
- 2025版別墅區(qū)物業(yè)委托經(jīng)營(yíng)管理服務(wù)標(biāo)準(zhǔn)范本3篇
- 二零二五年度公司股權(quán)激勵(lì)計(jì)劃后續(xù)管理與跟蹤合同2篇
- 2025年中國(guó)雙面羊絨大衣行業(yè)市場(chǎng)調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 2025年度海洋科學(xué)研究中心研究員聘用合同
- 2025年度交通行業(yè)短期運(yùn)輸司機(jī)勞動(dòng)合同
- 二零二五年度消防安全員消防技術(shù)咨詢服務(wù)聘用合同
- 二零二五年度農(nóng)業(yè)科技推廣勞務(wù)合同執(zhí)行與效果評(píng)估
- 第三單元名著導(dǎo)讀《經(jīng)典常談》知識(shí)清單 統(tǒng)編版語文八年級(jí)下冊(cè)
- 第十七章-阿法芙·I·梅勒斯的轉(zhuǎn)變理論
- 焊接機(jī)器人在汽車制造中應(yīng)用案例分析報(bào)告
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財(cái)務(wù)分析報(bào)告
- 無違法犯罪記錄證明申請(qǐng)表(個(gè)人)
- 大學(xué)生勞動(dòng)教育PPT完整全套教學(xué)課件
- 繼電保護(hù)原理應(yīng)用及配置課件
- 《殺死一只知更鳥》讀書分享PPT
- 蓋洛普Q12解讀和實(shí)施完整版
評(píng)論
0/150
提交評(píng)論