davidrobert
چهارشنبه 16 بهمن 1392, 23:49 عصر
سلام و خسته نباشید میخوام قفل ایمین به صورت سریال قرار بدم برای برنامه که طرف برنامه رو روی سیستم نصب میکنه و برنامه کد سیستم طرف رو نشان میده و اون شخص کد سیستم رو برای ما ارسال میکنه و ما هم به وسیله نرم افزار دیگه کد سیستم رو میدیم و برنامه کد فعال سازی اش رو میسازه وقتی ساخت برای ان شخص کد فعال سازی رو ارسال و وقتی طرف کد رو دریافت میکنه سیستم بیاد از ریجستری کد رو ثبت و برنامه رو فعال کنه مثل این تصاویر این رو هم بگم کلی دنبال تاپیک مربوط به این موضوع گشتم ولی تاپیک قفل ایمین رو برای فعال سازی نرم افزار پیدا نکردم.
116441
116442
من سورس این فایل رو دانلود کردم ولی یه ایرادی داره مثلا برنامه رو میخواهی فعال کنی یعنی اینکه بار اول کد فعال سازی میدید برنامه فعال میشه ولی تنها ایرادی که داره ویندوز رو عوض کن شخص بیاد مثلا سریال سیستم رو بده و سیستم هم بیاد کد فعال سازی درست بدم ولی طرف اشتباه وارد کنه مثل یه شماره یا حرفرو اشتباه وارد کنه برنامه ایراد میگیره و باه به راه خطا میده و کد درست رو هم دیگه قبول نمیکنه بار اول که ایراد گرفت دیگه ایراد میگیره و به هیچ عنوان درست عمل نمیکنه خیلی به همچین چیزی نیاز دارم ممنون میشم برای من قرار بدید با این سورس با مشکل بر خورد کردم این هم سورس هاش.
این کد مربوط به ساخت کد فعال سازی
private void button1_Click(object sender, EventArgs e)
{
Code(textBox1.Text);
textBox2.Text = Code(textBox1.Text).ToString();
}
private double Code(string sn)
{
double snb;
string x = sn;
for (int i = 0; i < x.Length; i++)
if (x[i] < 48 || x[i] > 57)
{
int ee = x[i] / 19 + 48;
x = x.Remove(i, 1);
x = x.Insert(i, Char.ConvertFromUtf32(ee));
}
snb = double.Parse(x);
double ff = snb * 356 * 52 - 10;
double fff = Math.Round(ff);
return fff;
}
این کد هم مربوط به ایجاد کد سیستم و فعال کردن سیستم مشتری
double sn;
RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"software\snreg");
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
sn = Code(GetHDDSerialNumber(""));
textBox1.Text = GetHDDSerialNumber("");
//بررسی وجود فایل ریجستری و صحت کد فعال سازی در آن
if (reg!=null)
{
string a = reg.GetValue("snb").ToString();
string b = sn.ToString();
if (a==b)
{
Form2 f2 = new Form2();
this.Hide();
f2.ShowDialog();
this.Close();
}
}
else
{
textBox1.Text = sn.ToString();
textBox1.ReadOnly = true;
}
}
//تبدیل به عدد کردن کد و انجام محاسبات برای تولید کد فعال سازی
private double Code(string sn)
{
double snb;
string x = sn;
for (int i = 0; i < x.Length; i++)
if (x[i] < 48 || x[i] > 57)
{
int ee = x[i] / 19 + 48;
x = x.Remove(i, 1);
x = x.Insert(i, Char.ConvertFromUtf32(ee));
}
snb = double.Parse(x);
double ff = snb * 356 * 52 - 10;
double fff = Math.Round(ff);
return fff;
}
//وارد کردن کد فعال سازی و فعال کردن برنامه
private void button1_Click(object sender, EventArgs e)
{
double a = 0;
double.TryParse(textBox2.Text, out a);
if (textBox2.Text == "")
{
MessageBox.Show("لطفا کد فعال سازی را وراد نمایید");
return;
}
else if (a == sn)
{
RegistryKey reg = Registry.LocalMachine.CreateSubKey(@"software\snreg");
reg.SetValue("snb", a);
MessageBox.Show("نرم افزار با موفقیت فعال شد ");
Form2 f2 = new Form2();
this.Hide();
f2.ShowDialog();
this.Close();
}
else
{
textBox2.Text = "";
MessageBox.Show("لطفا کد فعال سازی را به صورت صحصیح وراد نمایید");
}
}
//دریافت شماره سریال درایو c
public string GetHDDSerialNumber(string drive)
{
if (drive == "" || drive == null)
{
drive = "C";
}
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + ":\"");
disk.Get();
return disk["VolumeSerialNumber"].ToString();
}
خیلی ممنون میشم کمک کنید خیلی به همچین چیزی نیاز دارم و اینکه میخوام به 2 روش برنامه فعال باشه یکی از روش هاش اولش این باشه و روش دومش به وسیله قفل ایمین برنامه یا همون سخت افزاری میخوام بدونم امکانش هستش به وسیله سریال نامبر و کد مشتری به دو روش برنامه رو فعال کرد یا خیر.
116441
116442
من سورس این فایل رو دانلود کردم ولی یه ایرادی داره مثلا برنامه رو میخواهی فعال کنی یعنی اینکه بار اول کد فعال سازی میدید برنامه فعال میشه ولی تنها ایرادی که داره ویندوز رو عوض کن شخص بیاد مثلا سریال سیستم رو بده و سیستم هم بیاد کد فعال سازی درست بدم ولی طرف اشتباه وارد کنه مثل یه شماره یا حرفرو اشتباه وارد کنه برنامه ایراد میگیره و باه به راه خطا میده و کد درست رو هم دیگه قبول نمیکنه بار اول که ایراد گرفت دیگه ایراد میگیره و به هیچ عنوان درست عمل نمیکنه خیلی به همچین چیزی نیاز دارم ممنون میشم برای من قرار بدید با این سورس با مشکل بر خورد کردم این هم سورس هاش.
این کد مربوط به ساخت کد فعال سازی
private void button1_Click(object sender, EventArgs e)
{
Code(textBox1.Text);
textBox2.Text = Code(textBox1.Text).ToString();
}
private double Code(string sn)
{
double snb;
string x = sn;
for (int i = 0; i < x.Length; i++)
if (x[i] < 48 || x[i] > 57)
{
int ee = x[i] / 19 + 48;
x = x.Remove(i, 1);
x = x.Insert(i, Char.ConvertFromUtf32(ee));
}
snb = double.Parse(x);
double ff = snb * 356 * 52 - 10;
double fff = Math.Round(ff);
return fff;
}
این کد هم مربوط به ایجاد کد سیستم و فعال کردن سیستم مشتری
double sn;
RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"software\snreg");
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
sn = Code(GetHDDSerialNumber(""));
textBox1.Text = GetHDDSerialNumber("");
//بررسی وجود فایل ریجستری و صحت کد فعال سازی در آن
if (reg!=null)
{
string a = reg.GetValue("snb").ToString();
string b = sn.ToString();
if (a==b)
{
Form2 f2 = new Form2();
this.Hide();
f2.ShowDialog();
this.Close();
}
}
else
{
textBox1.Text = sn.ToString();
textBox1.ReadOnly = true;
}
}
//تبدیل به عدد کردن کد و انجام محاسبات برای تولید کد فعال سازی
private double Code(string sn)
{
double snb;
string x = sn;
for (int i = 0; i < x.Length; i++)
if (x[i] < 48 || x[i] > 57)
{
int ee = x[i] / 19 + 48;
x = x.Remove(i, 1);
x = x.Insert(i, Char.ConvertFromUtf32(ee));
}
snb = double.Parse(x);
double ff = snb * 356 * 52 - 10;
double fff = Math.Round(ff);
return fff;
}
//وارد کردن کد فعال سازی و فعال کردن برنامه
private void button1_Click(object sender, EventArgs e)
{
double a = 0;
double.TryParse(textBox2.Text, out a);
if (textBox2.Text == "")
{
MessageBox.Show("لطفا کد فعال سازی را وراد نمایید");
return;
}
else if (a == sn)
{
RegistryKey reg = Registry.LocalMachine.CreateSubKey(@"software\snreg");
reg.SetValue("snb", a);
MessageBox.Show("نرم افزار با موفقیت فعال شد ");
Form2 f2 = new Form2();
this.Hide();
f2.ShowDialog();
this.Close();
}
else
{
textBox2.Text = "";
MessageBox.Show("لطفا کد فعال سازی را به صورت صحصیح وراد نمایید");
}
}
//دریافت شماره سریال درایو c
public string GetHDDSerialNumber(string drive)
{
if (drive == "" || drive == null)
{
drive = "C";
}
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + ":\"");
disk.Get();
return disk["VolumeSerialNumber"].ToString();
}
خیلی ممنون میشم کمک کنید خیلی به همچین چیزی نیاز دارم و اینکه میخوام به 2 روش برنامه فعال باشه یکی از روش هاش اولش این باشه و روش دومش به وسیله قفل ایمین برنامه یا همون سخت افزاری میخوام بدونم امکانش هستش به وسیله سریال نامبر و کد مشتری به دو روش برنامه رو فعال کرد یا خیر.