تو این فرم سریال های خونده شده به کاربر نمایش داده میشه
کاربر کد رو به شما میده و کد ثبت رو میگیره و وارد میکنه ... کد دریافتی در واقع همون سریالی هست ش که کاربر به شما و شما بهمون صورت که توی برنامه سریال رو کد کردین ، سریال سیستم کاربر هم کد میکنید و بش میدین
و برنامه هم که سریال رو خونده و یه نسخه ش رو کد کرده ، با کدی که کاربر وارد میکنه ، چک میکنه و اگه برابر بود برنامه ثبت میشه در غیر اینصورت پیغام میده
(نحوه کد گذاری هم که بالا تو کلاس cryptor هست ش از الگوریتم MD5 استفاده میکنه)
کدهای پنجره فعالسازی کردن برنامه : (ظاهرا به این روش کد تلفنی یا یه همچین چیزی میگن)
using System;
using System.Drawing;
using RGF_UI;
using RGF_BLL;
using RGF_Inventory_Bonakdar.Properties;
using System.Windows.Forms;
namespace RGF_Inventory_Bonakdar
{
public partial class Frm_Reg : Form
{
string Cpu, Mboard;
Serial SR = new Serial();
public Frm_Reg()
{
InitializeComponent();
}
private void Read_Info()
{
Cpu = Information_Bll.Processor_SR();
Mboard = Information_Bll.MainBoard_SR();
Txt_Reg.Text = Cpu + Mboard;
}
private void Reg_Check()
{
if (Settings.Default.Reg_Check == false)
{
Read_Info();
}
}
private void Frm_Reg_Load(object sender, EventArgs e)
{
Wait.ShowLoadingScreen(this);
try
{
Reg_Check();
}
catch
{
Warning.ShowBox("عدم خواندن اطلاعات سخت افزاری","هشدار");
}
Wait.CloseLoadingScreen();
this.Activate();
}
private void Btn_Reg_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(Txt_Code.Text))
{
ToolTip TT = new ToolTip();
TT.Active = true;
TT.ToolTipTitle = "سریال ثبت !";
TT.ToolTipIcon = ToolTipIcon.Warning;
TT.Show(string.Empty, Txt_Code, 5000);
TT.Show("سریال ثبت را وارد نمایید", Txt_Code);
}
else
{
try
{
if (Txt_Code.Text.Trim() == SR.SN_Code()) // اگر سریال کدگذاری شده و کد ورودی برابر بود
{
Settings.Default.Reg_Check = true; // مقدار متغیر ترو شده
Settings.Default.Save(); // ذخیره شود
Ok.ShowBox(@"با تشکر ...
نرم افزار ثبت و محدودیت استفاده رفع شد ! .", "انجام شد");
}
else
{
Warning.ShowBox(@"کد وارد شده صحیح نمی باشد ...
جهت دریافت کد با واحد پشتیبانی تماس حاصل فرمایید .", "هشدار");
Application.ExitThread();
}
}
catch
{
Error.ShowBox(@"خطا در ثبت نرم افزار ...
با واحد پشتیبانی تماس حاصل فرمایید .", "خطا");
Application.ExitThread();
}
}
}
}
}
فکر نکنم نیاز به توضیح خاصی باشه ... اگه کدها برابر باشن متغیر مربوطه توی ستینگ true میشه و اصطلاحا برنامه فعال میشه !
و دستوراتی که توی لود_فرم پنجره اصلی چک میشه و اگه متغیر true بود گزینه فعالسازی توی منوی اصلی غیر فعال میشه و متن ش به "نرم افزار ثبت شده" تغییر میکنه