نمایش نتایج 1 تا 3 از 3

نام تاپیک: ذخیره تنظیمات سرور در رجیستری

  1. #1

    Question ذخیره تنظیمات سرور در رجیستری

    با سلام

    یه برنامه سرور کلاینتی سه لایه (شی گرا) دارم که میخوام یه کلاسی طراحی کنم برای اینکه تو فرم لاگین وقتی برای بار اول میاد بالا و کاربر هیچ تنظیمات سروری انجام نداده بهش پیام بده که تنظیمات سرور را انجام بده بعد وقتی تنظیمات سرور رو انجام داد و دکمه ذخیره تنظیمات رو زد این تنظیمات در رجیستری ویندوز ذخیره شه و دفعات بعدی هر بار که دیگه فرم میخواد لود شه بره رشته اتصال رو از رجیستری ویندوز بخونه بعد بتونه همین رشته اتصال رو برگرودنه ...ممنون میشم اگه کسی انجام داده و نتیجه گرفته ازش کمک کنه..باتشکر.

  2. #2
    مدیر بخش آواتار محمد رضا فاتحی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کهنسالترین موجود زنده در شهر منه
    پست
    1,181

    نقل قول: ذخیره تنظیمات سرور در رجیستری

    سلام
    اول باید یه مسیر دلخواه توی ریجستری برای خودت دست و پا کنی
    با این کد
    RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"Software\Yourpr  oject", true);


    بعد چک می کنی اصلا وجود داره یا نه اگه وجود نداشت که مغلومه تا حالا تنظیماتی ست نشده
        if (reg == null)
    {

    Registry.LocalMachine.CreateSubKey(@"Software\Medi anSofts", RegistryKeyPermissionCheck.ReadWriteSubTree);
    reg = Registry.LocalMachine.OpenSubKey(@"Software\Median Softs", true);
    }


    بعد میای یه کلید برای کانکشن استرینگت در نظر می گیری و اونو با یه مقدار پیش فرض می سازی البته می تونی تو همین مرحله فرم تنظیمات رو به کاربر نشون بدی و پس از بررسی اتصال کانشن رو دخیره کنی
    reg.SetValue("constr", constr, RegistryValueKind.String);

  3. #3
    کاربر دائمی آواتار حسین.کاظمی
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    Microsoft Visual Studio
    پست
    652

    نقل قول: ذخیره تنظیمات سرور در رجیستری

    آموزش کار با رجیستری در سی شارپ



    در هنگام نوشتن یک برنامه در مواقعی بایستی مقداری را در یک مکان از سیستم کاربر ذخیره کنیم . انتخاب برنامه نویسان در این گونه موارد معمولا از بین سه گزینه ی زیر می باشد :
    1- DataBase
    2- فایل های INI
    3- رجیستری ( تنها در برنامه نویسی برای سیستم های ویندوزی کاربرد دارد )



    استفاده از DataBase : به منظور نگهداری تعداد زیادی از مقادیر ، بهترین گزینه است . همچنین در صورتی که پای امنیت اطلاعات ذخیره شده در میان است ، در انجام این روش شک نکنید . در این روش میتوانید از قابلیت Password Protection که در تمامی بانک های اطلاعاتی وجود دارد ، استفاده کنید .
    استفاده از فایل های INI : در بعضی موارد هم میتوان از این روش استفاده کرد . البته این روش همراه با پیچیدگی و امنیت پایین میباشد .
    استفاده از رجیستری : روشی که قصد توضیح آن را داریم ، همین روش است . این روش دارای امنیت نسبتا پایینی ست . پس امنیت اطلاعات خود را با این روش به خطر نیاندازید . البته میتوانید اطلاعات خود را به صورت Encrypt شده در رجیستری قرار دهید ( مثلا مواقعی که قصد ذخیره یک رمز عبور ، در یک برنامه ساده را دارید ) . یکی از مزایای این روش سادگی و راحتی آن است .
    اگر موافق باشید ، به سراغ مراحل عملی کار برویم :
    یک پروژه ی جدید سی شارپ باز کنید و اسم آن را Registry in CS بگذارید .
    حالا وارد قسمت کد نویسی شده و Name Space زیر را در قسمت General تعریف کنید :
    using Microsoft.Win32;
    حالا میتوانید خیلی راحت در هر جایی از برنامتان از کلاس Registry استفاده کنید .
    در قسمت زیر اجزای این کلاس را مورد بررسی قرار خواهیم داد :
    1- Registry.ClassesRoot
    از این قسمت میتوانید برای انجام عملیات مختلف بر روی شاخه HKEY_CLASSES_ROOT استفاده کنید .
    چون متدها به صورت Alphabetic مرتب شده اند ، بنده هم آنها را به ترتیب توضیح میدهم . البته در یک مورد استثنا وجود دارد . آن هم متد OpenSubKey هست که باید در ابتدا توضیح بدهم ، چون تعداد زیادی از متدها به این متد وابستگی دارند .
    1-1 : OpenSubKey
    بوسیله این متد میتوانید یک زیر کلید را باز کنید . برای مثال به کد زیر دقت کنید :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GC”,true);
    در این کد نکات زیادی وجود دارد .
    خط اول : یک متغییر از نوع RegistryKey تعریف کردیم .
    خط دوم : مقدار متغییر reg را که در بالا تعریف کرده بودیم ، برابر کلید بازشده ( GC ) قرار دادیم تا بتوانیم عملیات مورد نظر خود را روی کلید باز شده انجام دهیم .
    البته اگر خواستید زیر کلیدهای بیشتری را باز کنید ، باید از کد زیر استفاده کنید :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GCClsid”,true );

    در همان خط دوم یک کلمه true می بینید . شاید بپرسید این کلمه چه معنایی دارد ؟! این کلمه به برنامه میگوید که کاربر دسترسی به این کلید را تایید میکند ( در بعضی مواقع دسترسی باید تایید شود ) .
    1- 2 : Close
    این متد کلید قبلی را که توسط متد OpenSubKey باز شده بود ، میبندد . بهتر است بعد از هر بار که متد OpenSubKey را به کار میگیرید ، در پایان کارتان متد Close را اجرا کنید .
    1- 3 : CreateSubKey
    وظیفه این متد ساخت یک زیر کلید است . کد زیر را ببینید :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GC”,true);
    reg.CreateSubKey(“NewSubKey”);

    1- 4 : DeleteSubKey
    اگر خواستید یک زیر کلید را حذف کنید ، میتوانید از این متد استفاده کنید . کد زیر همان کلید قبلی را که ساختیم پاک میکند :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GC”,true);
    reg.DeleteSubKey(“NewSubKey”);

    1- 5 : DeleteSubKeyTree
    این متد یک کلید با تمام زیر کلیدهایش و مقادیر زیر مجموعه اش را پاک میکند :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GC”,true);
    reg.DeleteSubKeyTree(“NewSubKey”);
    1- 6 : DeleteValue
    این متد هم که از نامش پیداست . پاک کردن یک مقدار کار این متد است . به کد زیر توجه کنید :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GC”,true);
    reg.DeleteValue(“Your Value”);
    1- 7 : Flush
    خوب است در هر قسمتی که کارتان با رجیستری تمام شد ، یک بار این متد را فراخوانی کنید . البته متد Close کار این متد ( Flush ) را هم انجام خواهد داد .
    Registry.ClassesRoot.Flush();
    1- 8 : GetAccessControl
    به MSDN مایکروسافت مراجعه کنید .
    1- 9 : GetSubKeyName
    با استفاده از این کد میتوانید زیر کلیدهای یک کلید رجیستری را بدست بیاورید . فقط قبل از اینکه کد زیر را اجرا کنید ، یک لیست باکس به فرمتان اضافه کنید و خاصیت Name آن را برابر با listBox قرار دهید :
    RegistryKey Reg;
    Reg = Registry.CurrentUser.OpenSubKey(“Software”);
    //————-
    foreach (string strSubKeysName in Reg.GetSubKeyNames())
    {
    listBox.Items.Add(strSubKeysName);
    }
    1- 10 : GetValue
    این متد میتواند مقدار یک Value را برگرداند . کد زیر را ببینید :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GC”,true);
    MessageBox.Show(reg.GetValue(“Your Value”).ToString());
    1- 11 : GetValueKind
    با این متد میتوانید نوع یک Value را دریافت کنید .
    انواع Value عبارتنداز :
    1- String
    2- Binary
    3- DWORD
    4- Multi-String
    5- Expandable
    به این کد توجه کنید :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GC”,true);
    MessageBox.Show(reg.GetValueKind(“Your Value”).ToString());

    1- 12 : GetVlaueNames
    با این کد هم میتوانید مقادیر موجود در یک کلید را بدست بیاورید . کد زیر :
    RegistryKey Reg;
    Reg = Registry.CurrentUser.OpenSubKey(“SoftwareMy APPSettings”);
    //————-
    foreach (string strSubKeysName in Reg.GetValueNames())
    {
    listBox1.Items.Add(strSubKeysName);
    }
    1- 13 : Name
    این یکی هم مسیر جاری رجیستری را برمیگرداند :
    RegistryKey reg;
    reg = Registry.ClassesRoot.OpenSubKey(“GC”,true);
    MessageBox.Show (reg.Name);
    1- 14 : SetAccessControl
    به MSDN مایکروسافت مراجعه کنید .
    1- 15 : SetValue
    بوسیله این متد میتوانید یک مقدار را در رجیستری بنویسید :
    RegistryKey Reg;
    Reg = Registry.LocalMachine.OpenSubKey(“SOFTWARE”, true);
    //————-
    Reg.SetValue(“My Value”, “Program”,RegistryValueKind.String);
    یک نکته در این کد وجود دارد . در خط سوم کدها آنجا که نوشته شده RegistryValueKind.String ، اینجا نوع متغییر تنظیم شده است . انواع متغیر ها را میتوانید در راهکار 1- 11 مشاهده کنید .
    1- 16 : SubKeyCount
    این یکی هم تعداد زیر کلیدهای یک کلید رجیستری را بازگشت خواهد داد :
    RegistryKey Reg;
    Reg = Registry.LocalMachine.OpenSubKey(“SOFTWARE”, true);
    //————-
    MessageBox.Show(Reg.SubKeyCount.ToString());
    1- 17 : ValueCount
    و اما آخرین مورد . بوسیله این تابع میتوانید تعداد متغییرهای داخل یک کلید را بدست بیاورید .
    RegistryKey Reg;
    Reg = Registry.LocalMachine.OpenSubKey(“SOFTWARE”, true);
    //————-
    MessageBox.Show(Reg.ValueCount.ToString());

    میتونی هم تو اینترنت سرچ کنی
    موفق باشی

تاپیک های مشابه

  1. ذخیره تنظیمات برنامه
    نوشته شده توسط mehdik76 در بخش C#‎‎
    پاسخ: 4
    آخرین پست: چهارشنبه 21 دی 1384, 23:18 عصر
  2. پاسخ: 2
    آخرین پست: چهارشنبه 26 مرداد 1384, 09:14 صبح
  3. تغییر کیفیت پرینت با کد نویسی/ذخیره تنظیمات پرینت در رجیستری
    نوشته شده توسط alireza_63 در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: جمعه 26 فروردین 1384, 11:55 صبح
  4. در خواست معرفی سورس برای تنظیمات سرور 2000 یا 2003 .......
    نوشته شده توسط alilittle در بخش شبکه و Networking‌
    پاسخ: 2
    آخرین پست: جمعه 07 اسفند 1383, 07:59 صبح
  5. تنظیمات سرور win2000 برای استفاده از SSL
    نوشته شده توسط ناصرقلی در بخش امنیت در شبکه
    پاسخ: 6
    آخرین پست: چهارشنبه 22 بهمن 1382, 08:50 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •