PDA

View Full Version : تغییر مقدار یک متغیر بعد از ثبت برنامه



sara_aryanfar
دوشنبه 29 فروردین 1390, 13:09 عصر
با سلام فکر کنم سوالم ابتدایی باشه اما من می خوام داخل برنامه یه ثابت یا متغییر داشته باشم که کاربر وقتی کد فعالسازی رو به برنامه داد این کد بره در اون متغییر قرار بگیره و دیگه مقدارش تغییر نکنه چطوری می تونم این کار رو بکنم

saeidi.yusuf
دوشنبه 29 فروردین 1390, 13:39 عصر
دوست عزیز سلام:
اگر منظورتون اینه که مقدار متغییر وقتی که برنامه باز و بسته می شه(دوباره اجرا می شه) خفظ بشه باید اون مقدار رو روی فایلی تو حافظه(hard) یا تو رجیستری قرار بدید.وقتی یه برنامه بسته می شه تمام منابعش آزاد می شن و مقدارشون رو از دست می دن.

sara_aryanfar
دوشنبه 29 فروردین 1390, 14:14 عصر
خوب در اون صورت کاربر می تونه با حذف اون فایل از قفل من رد بشه

flash118
دوشنبه 29 فروردین 1390, 15:54 عصر
برای جواب شما راه حل های بسیاری وجود داره از جمله استفاده از ریجستری ویندوز هست از اونجایی که فقط این متغییر یکبار استفاده و بررسی می شه و در دفعات بعدی فقط آنالیز خواهد شد و بازم می تونه ویرایش بشه ریجستری بهترین محل برای هدف شما خواهد بود البته راه های دیگه هم هست مثل هم زمان سازی که با استفاده از ریسمان ها انجام میشه و به صورت کلی بخواهم اون روش رو تشریح بدم باید بگم فرآیندی قبل از اجرای خود برنامه به آنالیز داده مشغول میشه و بعد از بار گذاری فرآیند اصلی که روتین برنامه هست رو اجرا میکنه البته تو این روش داده ها باید کد گذاری بشن که امروز برای سیستم ها متن باز از این راه کار ها استفاده میشه نکته اینه که بار اضافی به سیستم تحمیل نمی کنه و بعد از اتمام کار فقط روتین اصلی حافظه اشغال میکنه
موفق باشید فکر کنم برای کار شما همون ریجستری بهترین کار باشه اگه کارتون راه نیافتاد بگید روش دیگه هم که اونو براتون تشریح میکنم

sara_aryanfar
دوشنبه 29 فروردین 1390, 16:44 عصر
بله منم فکر می کنم رجستری بهترین راه هست حالا میشه روش و کد های لازم رو بهم معرفی کنین من می خوام با استفاده از شماره سی پی یو یه قفل نرم افزاری بسازم یعنی وقتی کاربر کدی رو که من دادم رو به برنامه داد اون برنامه شماره سی پی یو رو حفظ کنه و فقط برا اون باز بشه

arta.nasiri
دوشنبه 29 فروردین 1390, 18:18 عصر
سلام

یک نمونه کد برای کار با رجیستری
using Microsoft.Win32;
...
RegistryKey masterKey = Registry.LocalMachine.CreateSubKey
("SOFTWARE\\Test\\Preferences");
if (masterKey == null)
{
Console.WriteLine ("Null Masterkey!");
}
else
{
try
{
masterKey.SetValue ("MyKey", "MyValue");
}
catch (Exception ex)
{
Console.WriteLine (ex.Message);
}
finally
{
masterKey.Close();
}

sara_aryanfar
دوشنبه 29 فروردین 1390, 19:37 عصر
با تشکر میشه کمی در مورد کد توضیح بدین ممنون من الان شماره سریال نرم افزار رو کجا بدم و شماره سریال cpu رو کجا