日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

怎样把本软件是否注册的标志加在程序里?(注:不想加在数据库里)

發布時間:2025/3/19 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样把本软件是否注册的标志加在程序里?(注:不想加在数据库里) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
怎樣把本軟件是否注冊的標志加在程序里?(注:不想加在數據庫里) Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061220125350203.html
本人公司做了一套軟件, ?
? 并且需要注冊才可以使用, ?
? 但是注冊成功后不想把注冊是否成功的標志保存在數據庫、ini文件里, ?
? 想用更好的方法來做, ?
? 不知道各位有什么好辦法? ?
? 多謝了,

把注冊碼放入注冊表中,每次去比對。

有沒有相關的源碼, ?
? 沒做過這些東西, ?
? 多指教,

沒人保存注冊是否成功的標志的 ?
? 每次RUN都驗證的

關注~幫頂.

三樓講的對. ?
? ?
? 做法: ? 用戶把本機硬件序列號提交給你,你經過運算得出注冊碼,交給用戶注冊使用. ?
? ? ? ? ? ? ? 而這個注冊碼具體放在哪里是無所謂的,哪怕就用一個TXT放在程序目錄下也行,因為別的機器上此碼無用. ?
? ? ? ? ? ? ? 程序每一次運行,都比對注冊碼與實際的注冊碼(亦是收集硬件序列號進行運算)是否一致.

多謝各位, ?
? 還有方法嗎, ?
? 俺想今天揭帖, ?
?

給你一個,不過是檢測注冊表中的值進行判斷是否已經注冊: ?
? 當然這程序中的注冊碼是隨便寫的... ?
? procedure ? TE_Mainf.FormCreate(Sender: ? TObject); ?
? var ? re_id: ? integer; ?
? ? ? registerTemp: ? TRegistry; ?
? ? ? inputstr,get_id: ? string; ?
? ? ? dy, ? clickedok: ? boolean; ?
? ? ? i: ? double; ?
? label ? Y, ? N; ?
? begin ?
? ? ? dy ? := ? false;//軟件是否已到注冊期、及是否允許繼續使用的標志,當值為FALSE是為允許使用 ?
? ? ? registerTemp ? := ? TRegistry.Create; ? ? ? ? ? ? ? ? //準備使用注冊表 ?
? ? ? with ? registerTemp ? do ?
? ? ? begin ?
? ? ? ? ? RootKey ? := ? HKEY_LOCAL_MACHINE; ? ? ? ? ? ? ? ? //存放在此根下 ?
? ? ? ? ? if ? OpenKey('Software\Microsoft\Windows\CurrentVersion\Mark', ? True) ? then ? // ? 建一目錄,存放標志值。當然也可以存放在已存在的目錄下。 ?
? ? ? ? ? begin ?
? ? ? ? ? ? ? if ? valueexists('gc_id') ? then ? ? ? ? ? ? ? ? ? ? //用gc_id的值作為標志,首先判斷其存在否 ?
? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? re_id ? := ? readinteger('gc_id'); ? ? ? ? ? ? ? ? ? ? ? //讀出標志值 ?
? ? ? ? ? ? ? ? ? if ? (re_id ? <> ? 0) ? and ? (re_id ? <> ? 100) ? then ? ? //若標志值為0,則說明已注冊 ? ? ,若不為0且值不到100,說明雖未注冊,但允許使用的次數尚未達到。 ?
? ? ? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? ? ? re_id ? := ? re_id ? + ? 5; ? ? ? ? //允許標志的最大值為100,每次加5,則最多只可用20次 ?
? ? ? ? ? ? ? ? ? ? ? writeinteger('gc_id', ? re_id); ? ? ? ? ? ? ? ? ? ? //將更新后的標志值寫入注冊表中 ?
? ? ? ? ? ? ? ? ? ? ? i ? := ? (100 ? - ? re_id) ? / ? 5; ?
? ? ? ? ? ? ? ? ? ? ? if ? application.MessageBox(PAnsiChar('您使用的軟件沒有注冊,還有 ? ' ? + ? floattostr(i) ? + ? ' ? 次使用次數,現在要注冊嗎?'), ? '提示信息', ? mb_yesno ? + ? mb_iconwarning) ? = ? idyes ? then ?
? ? ? ? ? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? ? ? ? ? if ? i ? = ? 0 ? then ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? application.Terminate ?
? ? ? ? ? ? ? ? ? ? ? ? ? else ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? goto ? y; ?
? ? ? ? ? ? ? ? ? ? ? end; ?
? ? ? ? ? ? ? ? ? end; ?
? ? ? ? ? ? ? ? ? if ? re_id ? = ? 0 ? then ? goto ? N; ?
? ? ? ? ? ? ? ? ? if ? re_id ? = ? 100 ? then ? dy ? := ? true; ? ? ? ? ? ? ? ? ? ? //若標志值已達到100,則應當注冊 ?
? ? ? ? ? ? ? end ?
? ? ? ? ? ? ? else ?
? ? ? ? ? ? ? ? ? Writeinteger('gc_id', ? 5); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //建立標志,并置初始標志值 ?
? ? ? ? ? ? ? re_id ? := ? readinteger('gc_id'); ?
? ? ? ? ? ? ? i ? := ? (100 ? - ? re_id) ? / ? 5; ?
? ? ? ? ? ? ? if ? Application.MessageBox(PAnsiChar('您使用的軟件沒有注冊,還有 ? ' ? + ? floattostr(i) ? + ? ' ? 次使用次數,現在要注冊嗎?'), ? '提示信息', ? mb_yesno ? + ? mb_iconwarning) ? = ? idyes ? then ?
? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? if ? i ? = ? 0 ? then ?
? ? ? ? ? ? ? ? ? ? ? application.Terminate ?
? ? ? ? ? ? ? ? ? else ?
? ? ? ? ? ? ? ? ? ? ? goto ? Y; ?
? ? ? ? ? ? ? end; ?
? ? ? ? ? end; ?
? ? ? ? ? if ? dy ? then ?
? ? ? ? ? ? ? Y: ? begin ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //若dy值為TRUE,則應提示用戶輸入注冊碼,進行注冊 ?
? ? ? ? ? ? ? clickedok ? := ? InputQuery('系統提示', ? '請輸入注冊碼:', ? inputstr); ?
? ? ? ? ? ? ? if ? clickedok ? then ?
? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? get_id ? := ? inttostr(83392582 ? * ? 2); ? //注冊碼為166785164,夠簡單的...... ?
? ? ? ? ? ? ? ? ? if ? get_id ? = ? inputstr ? then ?
? ? ? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? ? ? Writeinteger('gc_id', ? 0); ? ? ? ? //若輸入的注冊碼正確,則將標志值置為0,即已注冊 ?
? ? ? ? ? ? ? ? ? ? ? Application.MessageBox('恭喜你,軟件注冊成功!', ? '提示', ? MB_OK); ?
? ? ? ? ? ? ? ? ? ? ? CloseKey; ?
? ? ? ? ? ? ? ? ? ? ? Free; ?
? ? ? ? ? ? ? ? ? end ?
? ? ? ? ? ? ? ? ? else ?
? ? ? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? ? ? application.messagebox('注冊碼錯誤!請與作者聯系!', ? '警告', ? mb_ok ? + ? mb_iconstop); ?
? ? ? ? ? ? ? ? ? ? ? CloseKey; ?
? ? ? ? ? ? ? ? ? ? ? Free; ?
? ? ? ? ? ? ? ? ? ? ? application.terminate; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //中止程序運行,拒絕讓其繼續使用 ?
? ? ? ? ? ? ? ? ? end; ?
? ? ? ? ? ? ? end ?
? ? ? ? ? ? ? else ?
? ? ? ? ? ? ? begin ?
? ? ? ? ? ? ? ? ? CloseKey; ?
? ? ? ? ? ? ? ? ? Free; ?
? ? ? ? ? ? ? ? ? application.terminate; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //中止程序運行,拒絕讓其繼續使用 ?
? ? ? ? ? ? ? end; ?
? ? ? ? ? end; ?
? ? ? end; ?
? ? ? N: ? datamodule1 ? := ? tdatamodule1.Create(self); ?
? ? ? if ? not ? assigned(E_loginf) ? then ?
? ? ? ? ? E_loginf ? := ? tE_loginf.Create(self); ?
? ? ? E_loginf.ShowModal; ?
? ? ? if ? E_loginf.ModalResult ? = ? mrCancel ? then//檢查返回模式,如果是關閉或是取消,則中止運行 ?
? ? ? begin ?
? ? ? ? ? ? ? Application.Terminate; ?
? ? ? ? ? ? ? exit; ?
? ? ? end; ?
? 不知有沒達到你要求~~

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的怎样把本软件是否注册的标志加在程序里?(注:不想加在数据库里)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。