زندگی یک گیک

خاطرات مختصری از علایق یک گیک

زندگی یک گیک

خاطرات مختصری از علایق یک گیک

پیوندهای روزانه

۲ مطلب با کلمه‌ی کلیدی «رجیستری» ثبت شده است


در هنگام نوشتن یک برنامه در مواقعی بایستی مقداری را در یک مکان از سیستم کاربر ذخیره کنیم . انتخاب برنامه نویسان در این گونه موارد معمولا از بین سه گزینه ی زیر می باشد :

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());

  • geek
خوب مطلبم دیگه عنوانش کاملا مشخصه، در ادامه نگاهی میندازیم به یه سری که خیلی به درد بخور و مفیدن و هر گیکی باید به این چند مورد توجه کنه، باما باشید :)

برای برنامه هایی که دارید، کاربردهای جدیدی پیدا کنید

این یکی واقعا مهمه! قبول کنید یا نه، یه گیک واقعی کسیه که دوست داره هرچیزی رو به چالش بکشه و قابلیت های جدیدی ازش کشف کنه. اگه به کامپیوتر یا اسمارتفون و گجت هاتون یه نگاهی بندازید، احتمالا یه سری برنامه، اپلیکیشن یا حتی سایت پیدا کنید که کاربردهایی فراتر از اون چیزی که شما فکر میکنید داشته باشن.

مثلا به قول نویسنده، شاید به دراپ باکس فقط به چشم یه سرویس برای آپلود فایلهاتون نگاه کنید، در حالی که با همین دراپ باکس یه عالمه کار جالب میتونید انجام بدید. مثلا میتونید به عنوان دانلودسنتر ازش استفاده کنید، کامپیوترتونو باهاش مدیریت کنید و حتی از تورنت دانلود کنید. یا حتی با جیمیل، فایلهاتونو در یه فضای ابری ذخیره کنید تا اگه گجتی مثل لپتاپ عزیزتون به سرقت رفت، این فایلارو از دست ندید. به یاد داشته باشید که برای گیک ها، هر چیزی، فقط همون چیز نیست، بلکه یه گیک به یه وسیله نگاه میکنه و سعی میکنه تا جایی که میتونه، کشفش کنه.

مثل یه نینجا از Command Line استفاده کنید

احتمالا همتون با Command Line آشنایی دارید و میدونید که کارش چیه. اگه از سیستم عامل هایی مثل ویندوز۷ استفاده میکنید، میتونید تو قسمت جستجوش Command Line رو پیدا کنید و واردش بشید. شاید الان بگید این محیط سیاه و قدیمی به چه دردی میخوره! صبر کنید، این جاست که فرق یه گیک با بقیه مشخص میشه. همین پنجره سیاه معروف Command Line انقدر به شما قابلیت میده که فکرشم نمیتونید کنید. البته صبر کنیدا، به قول نویسنده قرار نیست با یه چیزی مثل فیلمای سینمایی روبرو بشیم! در command line شما با یه سری کد و نوشته روبرو هستید که هر کدوم کار خودشونو انجام میدن. مثلا با نوشتن <نام پوشه> rmdir یه پوشه ای رو پاک میکنید. در کل کارش زیاده، اما متیونید این دو مقاله (۱-۲) رو مطالعه کنید یا اگه صبر کنید من حتما خودم بعدا این دوتارو ترجمه میکنم. در ضمن اینم بگم که میتونید از cygwin هم برای این کارا استفاده کنید.

در مورد ابزارتون اطلاعات داشته باشید

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

به هر چیزی زمان بدید

یکی از بهترین کارایی که میتونه هم مصرف کامپیوتر مارو پایین بیاره، هم اینکه هرکاری رو سر وقتش به ما یادآوری کنه، استفاده از اپ ها و برنامه های زمان دهیه. برای مثال روی استارت ویندوز کلیک کنید و “task scheduler” رو جستجو و انتخاب کنید. با همین برنامه، میتونید فوقوالعاده روی زندگی گیکیتون تاثیر بذارید. در ضمن از این برنامه ها هم کم نیست و اگه از این خوشتون نیومد، میتونید برنامه های مختلف رو امتحان کنید.

جاهای مخفی سیستم عاملتونو کشف کنید

یکی از ویژگی های گیک ها، کنجکاویشونه و این کنجکاوی بدجور به سیستم عاملا وصل میشه! بهترین راه برای این کنجکاوی، رجیستری ویندوز و ترمینال مک هست، اما اگه دلتون بخواد میتونید تو اینترنت دنبال این چیزای مخفی بگردید و پیداشون کنید، بعضیاشون خیلی به درد بخورن. یه مثال ساده بگم، حال کنید :) کلید شیفت رو نگه دارید و روی یه فولدر کلیک راست کنید، بعدش ماوس رو ببرید روی Send to ، دیدید چقدر گزینه اضافه شده! میتونید خیلی از این چیزای مخفی رو از این جا پیدا کنید.

هک کردن پسوورد رو یاد بگیرید تا بیشتر از خودتون محافظت کنید

اول از همه بگم که من آموزش هک کردن پسورد نمیذارم، اما از این جا میتونید یاد بگیرید و بعد این که یاد گرفتید، فقط در موارد درست ازش استفاده کنید. خوب برگردیم سر موضوع اصلی، سعی کنید تا جایی که میتونید از رمز های سخت و بدون کپی برداری از جایی استفاده کنید. از علائم و نشانه ها استفاده کنید و روی فایل های اصلیتون هم رمز بذارید. در مورد سیستم کدگذاری وایفایتون تحقیق کنید و سعی کنید در این مورد زیاد احتیاط کنید چرا که خیلی راحت قابل هک کردن هستن. این چندتای آخرو بعدا حتما ترجمه میکنم، اما اگه میخواید خودتون میتونید از لینک های مقابل مطالعشون کنید: ۱-۲-۳-۴

از کیبرد بیشتر کار بکشید

در این مورد زیاد توضیح دادم، از چگونه یک گیک باشیم گرفته تا تایپ سریع همه و همه رو گفتم. اما بیاید یه کم تخصصی ترش کنیم، یه گیک واقعی کسیه که تا حد امکان از کیبرد استفاده کنه و خودشو محدود به ماوس نکنه. سعی کنید کلید های میانبرو یاد بگیرید و این یادگیری رو فقط محدود به برنامه ای نکنید. خیلی از برنامه ها و سرویس ها، مثل ورد آفیس و حتی جیمیل، یه عالمه میانبر دارن که میتونید ازشون استفاده کنید. این میانبر هارو یاد بگیرید و خودتونو به یه گیک حرفه ای تبدیل کنید.

یه ذره هم که شده لینوکس یاد بگیرید

استفاده از توزیع های مختلف لینوکس، واقعا بعضی وقتا میتونه مفید باشه. سعی کنید تا حد ابتدایی هم که شده، لینوکس رو یاد بگیرید و ازش استفاده کنید. حتی میتونید با یه CD که توش لینوکسه، یه کامپیوتر قدیمی رو نونوار کنید.

سخت افزار رو منفجر کنید

راستش من دوست ندارم که اورکلاک رو پیشنهاد بدم، چون ممکنه کار از دستتون در بیاد و به سخت افزارتون خسارت وارد کنید. خودتونم که وضع پول این سخت افزارارو میدونید D: توصیه من اینکه اگه با اورکلاک آشنایی دارید و دوست دارید کمی قدرت سخت افزارهاتونو افزایش بدید، اورکلاک رو یه تستی بکنید. جدا از اورکلاک، میتونید با نصب بعضی از برنامه ها، به سخت افزاراتون یه حال و هوای تازه بدید که بعدا در موردش توضیح میدم، اما فعلا به این مثال بسنده کنم که با آپدیت ساده کارت گرافیکتون، میتونید کاراییشو بهتر کنید.

اسکریپت های فراموش شدتونو زنده کنید

این آخری خیلی خوب و مفیده. به قول نویسنده، شما نیاز ندارید که حتما یه زبان تخصصی برنامه نویسی رو یاد بگیرید تا برنامه های پیشرفته بسازید. با به کاربردن یه سری کد و همچنین AutoHotkey میتونید خیلی راحت، اسکریپت های خودتونو بنویسید و خیلی از کاراتونو با نوشته ها و ساخته های خودتون ساده تر و سریعتر کنید. پیشنهاد میکنم اگه انگلیسی قوی ای دارید و میتونید وارد لایف هکر بشید، حتما این مطلب رو که بازم قول میدم ترجمش کنم “باور کنید سرم شلوغه جبران میکنم (:” مطالعه کنید.


  • geek