PDA

View Full Version : مشکل در استفاده از قفل نرم افزاری (CPU) در برنامه سی شارپ



jaboli
سه شنبه 10 آذر 1394, 09:25 صبح
سلام من برای برنامه ام از قفل نرم افزاری استفاده کردم به طوری که با استفاده از کد سی پی یو سیستم به علاوه یه سری اعداد دیگه این کد آماده شده و پس از زدن کد درست اطلاعات در رجیستری ویندوز ذخیره میشن حالا مشکل اینجاست که وقتی یه بار برنامه اجرا میشه و قفل فعالسازی میشه مشکلی نیست و همه اطلاعات در رجیستری هم ذخیره میشه که دوباره نیاز به دادن کد نباشه ولی وقتی برنامه قطع میشه و دوباره اجرا میشه باز باید کد قفل رو بزنیم!!!!در صورتی که اطلاعات هنوز در رجیستری هستش
این هم دستور بررسی کد در رجیستری هستش


// Use WMI to return the CPUs' IDs.
private List<string> GetCpuIds()
{
List<string> results = new List<string>();


string query = "Select * FROM Win32_Processor";
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(query);
foreach (ManagementObject info in searcher.Get())
{
try
{
results.Add(info.GetPropertyValue("ProcessorId").ToString());
}
catch { }
}


return results;
}
private void index_Load(object sender, EventArgs e)
{
try
{
RegistryKey reg = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Avrsfw", true); int ramz2 = Convert.ToInt32(reg.GetValue("Setting2"));
CL.ramz = ramz2;
}
catch
{


}
//reg = Registry.LocalMachine.OpenSubKey(@"Software\Avr", true);


//storing the values


}


private void button1_Click(object sender, EventArgs e)
{
int check1 = CL.ramz;
if (check1 == 1)
{
MainPage main = new MainPage();
main.Show();
}
else
{
MessageBox.Show("نرم افزار شما هنوز فعال نشده است");
key page = new key();
page.Show();
}
}

ژیار رحیمی
سه شنبه 10 آذر 1394, 09:48 صبح
سلام دوست گرامی صرف استفاده از رجیستری جهت رجیستر کردن برنامه کار درستی نمی باشد به آسانی کلید رجیسترشده در بخش رجیستری ویندوز قابل پیدا شدن هست.بهتره در کنار پروژه از یه فایل رمز نگاری شده جهت ذخیر داده های رجیستر کردن برنامه خودت استفاده کنی که این حالت امنیت بیشتری نسبت به حالت قبل دارد.
در مورد سوال شما: در startup پروژه ابتدا رجیستری رو چک کن اگر کلید مورد نظر وجود نداشت اقدام به رجیستر کردن برنامه در غیر اینصورت کلید رجیستری رو بخونه و وارد نرم افزار شود.

jaboli
سه شنبه 10 آذر 1394, 10:37 صبح
سلام دوست گرامی صرف استفاده از رجیستری جهت رجیستر کردن برنامه کار درستی نمی باشد به آسانی کلید رجیسترشده در بخش رجیستری ویندوز قابل پیدا شدن هست.بهتره در کنار پروژه از یه فایل رمز نگاری شده جهت ذخیر داده های رجیستر کردن برنامه خودت استفاده کنی که این حالت امنیت بیشتری نسبت به حالت قبل دارد.
در مورد سوال شما: در startup پروژه ابتدا رجیستری رو چک کن اگر کلید مورد نظر وجود نداشت اقدام به رجیستر کردن برنامه در غیر اینصورت کلید رجیستری رو بخونه و وارد نرم افزار شود.
این کد چک کردن رجیستری هستش

private void index_Load(object sender, EventArgs e)
{
try
{
RegistryKey reg = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Avrsfw" , true); int ramz2 = Convert.ToInt32(reg.GetValue("Setting2"));
CL.ramz = ramz2;
}
catch
{




}
//reg = Registry.LocalMachine.OpenSubKey(@"Software\Avr", true);




//storing the values




}