Free Web Hosting | free host | Free Web Space | BlueHost Review
BE STONE HEART!!IN EACH POSITION!!BECAUSE LOVE IS COMPELETELY DEAD!!BELEIVE ME!!

 

!!سلام!خوش آمدید!!من عباس هستم!!امیدوارم مطالب بدرد بخوره!! پیغام یادت نره!!

 

تا کی میخوای موست تو چشمم باشه؟
تا کی میخوای موست تو چشمم باشه؟

من سعى دارم طى اين مقالات به منظور افزايش سطح دانش خوانندگان در زمينه رجيسترى براى راهبران ويندوز در سطوح متوسط و پيشرفته و بخصوص برنامه نويسان مطالبى را ارايه دهم كه كمتر درباره آنها ميدانيد.

گرچند افسانه هاى زيادى راجع به رجيسترى وجود دارد. سخنانى كه گاه هركس را ترغيب ميكند تا با كنكاش در رجيسترى خود, كه شايد بتواند به سوال هايى كه در ذهنش به وجود آمده جواب دهد. اما رجيسترى چيزى جزء يك پايگاه داده براى تنظيمات برنامه هاى كاربردى و بخصوص ويندوز نيست. شركت مايكروسافت نيز مستندات زيادى براى آگاهى كاربران در رابطه با رجيسترى ويندوز ارايه نكرده است. دليل اين امر كاملا روشن است. رجيسترى نقش ظريفى را در ويندوز ايفا ميكند. با هر بار كليك شما در هر قسمت فضاى كاريتان ده ها ارجاع و سوال از رجيسترى صورت ميگيرد در واقع رجيسترى سناريوى پشت پرده ويندوز است. به همين دلايل است كه رجيسترى حكم سنگ سرطان را دارد زيرا وجود آن اگر چه كار را براى برنامه سازان و همه برنامه هاى كاربردى ساده كرده اما عدم وجود آن نيز منجر به فاجعه ميشود.

همه برنامه هاى كاربردى حتى كوچك ترين و كم كارترين آنها بدون گرفتن و نوشتن اطلاعاتشان در رجيسترى نميتوانند كار كنند. اما به اين دليل نيست كه برنامه سازان طى مراحل فراگيرى و كامل كردن يادگيرى اصول زبان مورد علاقه شان به كنكاش در چون و چراى رجيسترى ميپردازند. برنامه سازان به وسيله رجيسترى كار خود را با داده هاى تنظيمات برنامشان, ساده كرده و برنامه خود را قادر ميسازند كه براى هر كاربر تنظيمات شخصى ايجاد كنند. به اين ترتيب با بالا رفتن ضريب عملكرد برنامه شان همين طور افزايش ايمنى ارتباط هر كاربر با برنامه خود باعث شوند كه با خيال آسوده به كد هاى اصلى و هدف برنامه بپردازند. رجيسترى اين امكان را براى برنامه سازان فراهم ميكند تا آنها در يك محيط كاملا سلسله مراتبي نظم را براى برنامه اى كه مينويسند به ارمغان آورند.

رجيسترى قلب و روح ويندوز است و يک برنامه نويس حرفه اى برنامه نويسيست که محيط کار خود (يعنى سيستم عاملش) را به خوبى بشناسد ( اين جمله را از من فراموش نکنيد. يک برنامه نويس خوب, نه حرفه اى برنامه نويسيست که به علم رياضى کاملا واقف باشد).

در صورتى که شما جزء دسته كاربران, در سطح حداقل متوسط قرار نداريد يا اينكه تاكنون با رجيسترى ويندوز كار نكرده ايد در همين شورع كار موارد اساسى و لازم را به صورت فشرده توضيح ميدهم در غير اين صورت ميتوانيد از مطالعه ادامه اين بخش صرف نظر كنيد.

RegEdit.exe سخنگوى رجيسترى
براى مشاهده محتواى رجيسترى سيستم خود کافيست در منوى Run فرمان regedit را تايپ و اجرا کنيد. اين برنامه رابط کاربرى بين اطلاعات موجود در رجيسترى و شماست. Regedit اطلاعات رجيسترى را همانند microsoft Explore به نمايش در مياورد.

در سمت چپ ويرايشگر رجيسترى Regedit پوشه هايى را ميبينيد که به آنها کليد Key گفته ميشود و همان طور که مشاهده ميکنيد چند کليد هستند که بقيه کليد ها زير مجموعه آنها مى باشند. که به آنها کليد هاى اصلى Sub Key ميگوييم. البته تصوير نمايان گر Sub key هاى موجود در Win XP مى باشد که در اينجا از پنج عدد تجاوز نمى کنند. هر کليد اصلى مجموعه اى از تنظيمات يک بخش مى باشد که در جدول زير بعضى از کارايى هاى هر کدام عنوان شده است. از آنجايى که نام آنها کمى بلند است ما از مخفف نام آنها استفاده خواهيم کرد.

شرح

نام مخفف

کلید اصلی

انواع مختلف فایل را به برنامه مربوطه ارتباط داده و ثبت کلاس ها برای اشیاء Com را نیز در بر دارد.

HKCR

HKEY_CLASSES_ROOT

تنظیمات خاص کاربر مربوط به کاربر کنسول*

HKCU

HKEY_CURRENT_USER

تنظیمات خاص کامپیوتر مربوط به همه کاربران و داده های سیستمی و سخت افزاریست.

HKLM

HKEY_LOCAL_MACHINE

حداقل شامل سه زیر کلید است که تنظیمات همه کاربران را در شاخه های مربوط به هر شخص نمایش میدهد.

HKU

HKEY_USERS

نوعی ارتباط با داده های پیکر بندی برای پروفایل های سخت افزاریست.

 

 

HKCC

HKEY_CURRENT_CONFIG

* کاربر کنسول کاربریست که با صفحه کلید کار میکند

ساختار رجيسترى يک ساختار سلسله مراتبيست که بسيار مشابه ساختار داده هاى موجود در ديسک سخت شما است

در پنجره سمت راست ويرايشگر رجيسترى خود داده هاى هر کليد را ميبينيد. در واقع هر کليد يک يا چند مقدار دارد. اين داده ها را مقادير Values مى نامميم. هر مقدار در رجيسترى داراى سه خصيصه اصلى ميباشد:

1) نام Name  - حداکثر 512 کاراکتر ANSI   يا   256 کاراکتر يونى کد به غير از "\" , "*" و "?"  ميتوانيد در نام گذارى استفاده کنيد در ضمن نام هايى که با "."  نقطه آغاز ميشود براى استفاده خود ويندوز هستند.

2) نوع Type- نوع هر مقدار فرمت و نوع داده هاى آن را مشخص ميکند که پر استفاده ترين آنها عبارتند از:

         REG_BINARY : اين نوع متغير داده نوع باينرى خام را ذخيره مي كند
        REG_DWORD : اين نوع متغير براى نمايش داده هاى 4 بايتى و همچنين براى ذخيره كردن مقادير منطقى درست يا غلط TRUE OR FALSE   به كار ميروند. بدين ترتيب كه براي نمايش غلط ار عدد "0" و براى نمايش درست از "1" استفاده ميشود.
                 REG_SZ : اين نوع متغير رشته اى استاندارد مى باشد كه براى ذخيره كردن متن قابل خواندن توسط كاربر استفاده مى شود
  REG_EXPAND_SZ : اين يك نوع متغير رشته اى قابل گسترش مى باشد كه نرم افزار ها جهت بعضى اعمال خود از اين متغير استفاده مى کنند. مثلا به جاى عبارت %SYSTEM ROOT% با مقدار واقعى خود يعنى مسير نصب ويندوز (مثلا C:\WINDOWS) جايگزين مى شود. بايد توجه داشته باشيد كه اين نوع متغير نوعى رشته است و مادامى که نرم افزارى براى تبديل آن به مقدار اصليش وجود نداشته باشد چيزى جزء REG_SZ نمى باشد.

البته نوع هاى داده اى ديگرى هم وجود دارند که برخى از آنها بخصوص براى برنامه نويسان سخت افزار  بسيار مورد علاقه ميباشند. در رابطه با آنها در آينده اى نزديک بحث هاى مفصلى خواهم کرد ولى براى شروع کار تا همين حد کفايت مي کند.

3) داده ها Data - هر مقدار ميتواند خالى, تهى يا حاوى داده اى باشد. داده هر مقدار ميتواند حداکثر 32768 بايت باشد. اما حجم آن در عمل 2KB است.

هر کليد حداقل يک مقدار Value دارد که به آن مقدار پيش فرض Default گفته ميشود. اگر برروى يکى از کليد ها راست کليک کنيد و گزينه New سپس Key را انتخاب کنيد کليدى (به عنوان زير کليد) ساخته مى شود که Default در آن وجود دارد نوع مقدار پيش فرض هميشه بايد از نوع رشته Reg-SZ باشد اما برنامه هايى که به درستى کار نمى کنند ميتوانند نوع مقدار پيش فرض را عوض کنند. داده مقدار پيش فرض هم تهيست تا مادامى که در آن چيزى نوشته شود. ويرايشگر رجيسترى تهى را با علامت (value not set) نشان ميدهد.


آيا ميدانيد ويندوز محتواى رجيسترى را كجا ذخيره ميكند؟

فايل هاى داده اى با عنوان Hive وظيفه نگه دارى داده هاى رجيسترى را برعهده دارند.
ويندوز فقط محتواى كليد هاى HKLM و HKU را ذخيره مى نمايد در مقاله هاى بعدى علت اين عمر را شرح خواهم داد.
براى مطلع شدن از مسير فايل هاى Hive به شاخه HKLM\SYSTEM\CurrentControlSet\Control\hivelist موجود در رجيسترى مراجعه نماييد.

با کمى کنکاش در محتواى کليد فوق درخواهيد يافت که کليد HKLM\HARDWARE در هيچ جايى ذخيره  نمى شود اين بدان علت است که ويندوز محتواى کليد فوق را هر بار به هنگام بالا آمدن ايجاد ميکند. در واقع به وسيله فايل هاى inf و درايور هايى که قبلا براى سخت افزار نصب شده اند همچنين با سوال از خود قطعات سخت افزارى در رابطه با اطلاعات مورد نياز براى ايجاد ارتباط بهينه با آنها, محتواى کليد HKLM\HARDWARE را در رجيسترى مقدار دهى ميکند.

اکثر فايل هاى Hive که به کليد HKLM مربوط ميشوند در مسير:

%WinDir%\System32\config

 قرار دارند. براى دست يابى به اين مسير کافيست فرمان config را در منوى Run اجرا کنيد.


فرمت تمام فايل هاى Hive باينرى مى باشد. ويندوز تمام اطلاعات موجود در کليد ها را صرف نظر از فرمت خواندن و نوشتارى آن ها توسط نرم افزار هاى مختلف فقط به شکل باينرى در فايل هاى Hive ذخيره ميکند.
توجه داشته باشيد که فايل هاى Hive را نمى توانيد تغيير دهيد يا آنها را پاک و جابه جا نماييد زيرا ويندوز به محض در خواست براى بالا آمدنش اين فايل ها را باز ميکند و امکان انجام عمليات هاى نام برده را بر روى فايل هاى Hive باز غير ممکن ميسازد.

J- در مقاله بار گذارى فايل های Hive روش هایی را به منظور پشتيبان گيری از رجيستری به وسيله فايل های Hive و چگونگی بارگذاری فايل های Hive روی يک ماشين يا سيستم بومی ديگر, ارائه خواهم داد.

جدول زير انواع فايل هايى را معرفى ميكند كه به نوعى با فايل هاى Hive رابطه دارند.

انشعاب                 شرح
_____________________________________________
log.                       گزارش تغييرات يک فايل Hive
بدون انشعاب         فايل Hive
alt.                        در ويندوز Xp مورد استفاده قرار نمى گيرد. فايل System.alt در ويندوز 2000 يک نسخه پشتيبان از فايل Hive  اصلى سيستم يعنى System است.
Sav.                      نسخه اى از يک فايل Hive که در پايان فاز "مد Text" برنامه نصب ويندوز ايجاد ميشود. در صورت عدم موفقيت برنامه نصب ويندوز در فاز "مد graphics" اين فايل ها به کمک برنامه نصب مى شتابند تا در Restart  بعدى برنامه نصب بتواند کار خود را از سر بگيرد.

يک نکته جالب!
ويرايشگر يجيسترى خود را باز کنيد (با اجراي فرمان Regedit از طريق منوى Run).
با کمى دقت در نام کليد ها متوجه مى شويد که Regedit نام بعضى کليد ها را کاملا با حروف بزرگ نمايش داده مانند HKLM\SYSTEM  تعداد اين موارد زياد نيست اما اکثر کليد ها با همان روش معمول نگاشته شده اند مانند  HKCU\Console  نکته همين جاست !
کيله کليد هايى که با حروف بزرگ نام نويسى شده اند داراى فايل Hive مختص به خود هستند مثلا در اين مورد  HKLM\SYSTEM  در فايل:

%WinDir%\System32\config\system

(دقت کنيد که نام فايل system است و هيج پسوندی ندارد) ذخيره ميگردد.

J- اين اطلاعات به چه دردی ميخورند ؟
در آينده شرح خواهم داد که چگونه به کمک فايل های Hive و پردازه نويسی (برنامه نويسی) بتوانيد سيستمی را که ديگر اميد به حيات آن نيست به زندگی در عالم انفورماتيک باز گردانيد!


آيا ميدانيد هر کاربرى که با ويندوز ارتباط برقرار ميکند دارى يک شناسه امنيت SID ميباشد !

در اين مقاله بخوانيد:
SID و نمايش آن در رجيسترى
ارتباط چند کاربر با ويندوز فقط با يک بار Logon کردن
تنها کليد هاى واقعى HKLM و HKU مى باشند. بقيه کليد ها نوعى ارتباط با اين دو کليد هستند.
GUID ها شناسه هاى منحصر به فرد عمومى

SID چيست ؟
اکانت هاى کامپيوتر, اکانت هاى کاربرى, گروهها و ساير شىء هاى مرتبط با امنيت, اصول امنيتى به شمار مى آيند که ويندوز براى هرکدام از آنها يک شناسه امنيت SID در نظر ميگيرد. SID ها در محدوده خودشان منحصر به فرد هستند مثلا SID شخص من در ويندوزى که با آن کارميکنم  برابر S-1-5-21-746137067-1390067357-1801674531-1004 ميباشد.
يک SID هميشه با حرف S آغاز ميشود, عدد بعدى نشان دهنده نگارش SID ميباشد که در اين مورد 1 است و مابقى اعداد شناسه مربوط به حوزه آن شىء مى باشند.

SID های مربوط به هر شیء در حوزه فعاليت آن منحصر به فرد هستند حتی اگر شما کاربری باشيد که با ويندوز ارتباط برقرار کرده و اقدام به پاک کردن اکانت اتصال خود کنيد, SID که قبلا ويندوز آن اکانت را با آن ميشناخت ديگر هيچ وقت برای هيچ شیء ديگری در آن حوزه در نظر گرفته نمی شود.

برخی از SID ها کوتاهتر از مثال بالا هستند مانند S-1-5-18 (به تصوير توجه کنيد) اين ها SID های متداول هستند و در تمام کامپوتر ها و حوزه ها يکسان ميباشند. دليل جالب بودن اين SID ها آن است که يک هکر (كاوشگر) را کمتر به زحمت مى اندازند و بارها و بارها در رجيسترى و جاهاى ديگر با آنها مواجه خواهيد شد.

در زير فهرست معروفترين آنها را ميبينيد:

SID                           نام کاربر يا گروه
_______________________________________
S-1-5-1                      Dialup
S-1-5-2                      Network
S-1-5-13                    Terminal Service User
S-1-5-14                    Remote Interactive Logon
S-1-5-18                    System يا LocalSystem
S-1-5-19                    LocalService
S-1-5-29                    NetworkService
S-1-5-domain-500     Administrator
S-1-5-domain-501     Guest
S-1-5-domain-520     Group Policy Creator Owners
S-1-5-domain-545     Users
S-1-5-domain-546     Guests
S-1-5-domain-547     Power User

در اين فهرست SID مربوط به Administrator را به صورت S-1-5-domain-500 ميبينيد. منظور از domain در اينجا همان طور که گفته شد شناسه مربوطه در حوزه ميباشد. به طور مثالSID مربوط به Administrator در ويندوز من برابر S-1-5-21-746137067-1390067357-1801674531-500  ميباشد. SID بقيه کاربران هم به همين ترتيب قابل تشخيص است يعنى اگر ويندوز شما فقط به وسيله يک کاربر فراخوانى شده باشد شما ميتوانيد خيلي راحت از طريق کليد HKU در رجيسترى SID خود را ببينيد.

براى برنامه نويسان هم يك برنامه كه بوسيله آن ميتوانيد SID های یک سیستم را از طریق کد به دست آورید در همین سایت در Link قرار داده ام حتما استفاده کنید.

چگونه ميتوانيد با يک بار Logon کردن از امکانات کاربرى چندين کاربر استفاده کنيد ؟
براى بهتر روشن شدن موضوع مثال زير را عنوان ميکنم.
زماني بود که ميخواستم يکي از برنامه هاى مديريت سيستم را با کاربرى که در گروه Power User قرار داشت اجرا کنم اما ويندوز اجازه اجراى آن برنامه را فقط براى کاربران گروه Admin آزاد گذاشته بود بنابراين, به من که با نام کاربرى Javad به ويندوز Logon کرده بودم اجازه اجراى آن را نميداد !
اما - کليد Shift را پائين نگه داشتم و روى آيکن برنامه مورد نظرم راست کليک کردم و از منويى که ظاهر شد گزينه Run As را انتخاب نمودم سپس کاربر Administrator را از ليست کاربران انتخاب كردم و بعد از وارد کردن کلمه عبور منو را تاييد کردم به اين ترتيب آن برنامه اجرا شد ! چطور ممکن است !؟!

در آن زمان وقتى به سراغ کليد HKU در رجيسترى رفتم علاوه بر تنظيمات SID خودم SID کاربر Administrator  را نيز ملاحظه کردم. در واقع ويندوز اين امکان را فراهم مياورد که شما فقط با يک Logon بتوانيد از تنظيمات چندين کاربر استفاده کنيد.

من از اين امکان بهره هاى ديگرى نيز  برده ام. وقتى روى پروژه برنامه Active Start JSP کار ميکردم, اين برنامه برنامه ای بود که براي هر کاربر تنظيمات مختص به آن کاربر را ارائه ميداد يعنی شما ميتوانستيد منو ها و تنظيمات دلخواه خود را بر روی آن برنامه کاملا مطابق سليقه خود تعريف کنيد و اين مجزا از تنظيمات بقيه کاربران بود. بنابراين در زمان برنامه نويسی آن مجبور بودم با هر تغيير و اصلاح کد بين حداقل دو کاربر موجود رفت و برگشت کنم اما با روشی که شرح دادم سرعت کار خود را به رقم قابل توجهی افزايش دادم (به تصوير نمونه توجه کنيد). اين تکنيک برای جلوگيری از بروز خطاهای انسانی و ويروس های احتمالی نيز کارا ميباشد.(بسيارى از ويروس ها فعاليت خود را درست زمان Logon آغاز ميکنند. با اين روش ميتوانيد تنظيمات کاربرى چند کاربر را به راحتى در يک محيط مشاهده و ويرايش نماييد)

البته اين نکته را هم خاطر نشان کنم که وضعيت فوق (ظاهر شدن تنظيمات چند کاربر در رجيسترى) زماني که به دو يا چند کاربر Switch ميکنيد نيز به وجود ميايد.

در حالت عادى يعنى زمانى که شما فقط با يک کاربر در حالت Logon هستيد شناسه امنيت SID تنها همين کاربر در شاخه HKU قابل مشاهده است.
اصتلاح: کاربر کنسول- کاربريست که در حال کار با صفحه کليد ميباشد.
بنابراين در يک لحظه فقط يک کاربر کنسول وجود دارد حتي اگر با چندين کاربر Login کرده باشيد يا حتى تنظيمات چندين کاربر را فراخوانى کرده باشيد.

آيا ميدانيد رجيسترى فقط به دو کليد HKLM و HKU خلاصه ميشود !
بقيه کليد هايى که هم رديف اين دو Sub key ميبينيد در واقع نوعي ارتباط (Link) با اين دو کليد هستند.
به تصوير توجه کنيد. ميبينيد که بقيه کليد ها خود يک کليد يا زير مجوعه اى از دو کليد اصلي نامبرده شده هستند.
اين تصوير جريان مفصلى از ارتباطات را در رجيستري نمايش ميدهد.


البته در برخى موارد ويندوز يک کليد را از ادغام چندين کليد ديگر به وجود مياورد مانند کليد HKEY_Classes_ROOT که خود ترکيبى از حداقل سه کليد ديگر ميباشد !

J- در مقالات بعدى راجع به کليد ها به تفضيل توضيح خواهم داد.

GUID ها شناسه هاى منحصر به فرد عمومى
شناسه هاى منحصر به فرد عمومى بيشتر تحت عنوان GUID (با تلفظ گو آى دى) شناخته ميشوند.
GUID ها اعدادى هستند که ويندوز به هر چيزى اختصاص ميدهد. در واقع ويندوز به کمک GUID ها ميتواند اشياء موجود در صحنه را از هم تميز دهد. شىء ها از جمله کامپيوترها, برنامه ها, اجزاء دروني و ساخت برنامه ها, وسايل سخت افزارى و ... هر کدام GUID منحصر به خود را دارند به عنوان مثال GUID سطل زباله Recycle bin درون همه کامپوتر ها برابر


{645FF040-5081-101B-9F08-00AA002F954E}


ميباشد.
J- صبر داشته باشيد در اينجا فقط مقدمه GUID را بيان ميکنم در مقاله اى به طور مفصل اين موضوع با اهميت براى کاربران وحداقل هکر ها را شرح خواهم داد. مثلا شما ياد ميگيريد که چگونه به کمک همين GUID کوچک آيکن سطل زباله را از روى دسکتاپ برداريد. فراموش نکنيد که براى اين کار ويندوز هيچ رابط کاربرى محيا نکرده بنابراين تنها راه موجود رجيستريست !  پس برنامه نويسان بخصوص مقاله مربوط به اشياء شل ShellObjects را بخوانند)

فرمت تمام GUID ها يکسان است. GUID ها اعداد 16 بايتى هگزادسيمال هستند كه در گروههاى

 GUID format:   8-4-4-4-12

 که هر بلوک به وسيله خط تيره از بلوک مجاور خود مجزا ميشود و کل GUID هم بين دو آکولاد باز و بسته قرار ميگيرد.
يعني ما 8+4+4+4+12 معادل 32 خانه داريم که در هر خانه اعداد 0 تا 9 و حروف A تا F (با توجه به 16 بايتى بودن GUID ها) را ميتوان نوشت. به اين ترتيب فراوانى GUID ها رقمى معادل 16 به توان 32 ميباشد !!! بيخود نيست که مايکروسافت منحصر به فرد بودن آنها را تضمين کرده است. يعنى امکان ندارد ويندوز درون يک سيستم براى دو شىء يک GUID را اختصاص دهد.
GUID ها بسيار مورد علاقه برنامه نويسان هستند چون به کمک GUID ميتوانند اجزاء مختلف برنامه شان را درون سيستم از هم و بقيه اجزاء سيستم جدا کنند.
J- من شخصا براى توليد GUID هاى مورد نياز برنامه هايم از نرم افزار Guidgen.exe استفاده ميکنم. منظورم آن است که خود GUID هاى مورد نياز برنامه تان را نسازيد اجازه دهيد اين کار به وسيله يك ابزار توليد تصادفى انجام شود. مطمئن باشيد GUID تصادفى توليدى منحصر به فرد خواهد بود.

و در آخر براى غنى تر ساختن شما رگه طلايى را در معدن رجيسترى معرفى ميکنم HKEY_CLASSES_ROOT\CLSID  فقط مراقب باشيد با ديناميت معدن و ويندوز خود را منفجر نکنيد !

 

چگونه ميتوان فايل هاى Hive شخصى از رجيسترى ايجاد و در يک سيستم ديگر بار گذارى کرد ؟

در اين مقاله بخوانيد:
روشهاى پشتيبان گيرى جزعى (محافظت از رجيسترى در برابر خرابکاريهاى خودتان)
ايجاد فايل هاى Reg
ايجاد فايل هاى Hive شخصى
Import فايل هاى داده اى رجيسترى
مزيت استفاده از فايل هاى Hive در برابر فايل هاى Reg
طريقه بارگذارى فايل هاى Hive

J- قبل از مطالعه اين مقاله بايد مقاله اسرار رجيسترى فصل اول : فايل هاى Hive را خوانده باشيد زيرا در اينجا لازم است فايل هاى Hive را بشناسيد. به شما پيشنهاد ميکنم يک پشتيبان کلى هم از رجيسترى سيستمتان تهيه نماييد تا با خيال آسوده تمرينات و مثال هاى اين مقاله را دنبال کنيد.

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

تغيير نام مقادير, کوتاهترين و سريع ترين راه:
در اينجا با يک مثال مطلب فوق را عنوان ميکنم. به تصوير توجه کنيد که محتواي کليد HKCU\Control Panel\Desktop سيستم خود من را نشان ميدهد.


در اين روش ساده اما کارا شما بايد نام کليدها يا مقادير (Values) ها يى را که ميخواهيد دست کارى کنيد طورى تغيير دهيد که اگر تغييرات شما باعث شد که اتفاق ناخوشايندى براى سيستمتان بيافتد خيلى راحت بتوانيد تنظيمات قبلى را به حالت اوليه اش باز گردانيد.
منطق حکم ميکند که نام ها را به طور کامل عوض نکنيد. مثلا من در اين مورد داده ForegroundFlashCount را به JS_ForegroundFlashCount تغيير نام داده ام سپس دوباره داده را ايجاد کردم و مقدار جديد را به آن اختصاص داده ام. در اينجا من از حروف اول نام خود در ابتداى آن استفاده کردم JS=Javad Soltani به اين ترتيب هر جاى ديگرى در رجيسترى سيستمم که به _JS برخورد کنم ميدانم که آن قبلا يک داده با ارزش بوده.
نکته اينجاست که ويندوز و تقريبا همه برنامه هاى کاربردى فقط داده اى را که با نام مورد نظر خودشان مطابقت دارد ميخوانند. از اين شيوه براى حذف کردن مقادير نيز استفاده کنيد. يعنى به جاى اينکه داده اى را حذف کنيد کافيست نام آن را تغيير دهيد. البته برنامه هاى کاربردى که به درستى کار ميکنند وقتى داده مورد مديريت آنها از رجيسترى حذف شود دوباره آن را ايجاد ميکنند. ( با تغيير نام يک داده آن را از ديد برنامه ها مخفى ميکنيد يا باعث ميشويد دوباره با مقدار پيش فرضش ايجاد شود )
حال اگر تغييرات شما بر روى مقادير روزانه يا لحظه اى ميباشد ميتوانيد علاوه بر اضافه کردن مخفف نامتان, تاريخ يا ساعت تغييرات را هم به ابتداى مقادير پشتيبان اضافه کنيد. (تاکيد من بر اضافه کردن به اول مقادير از آن جهت است که بعضى برنامه ها مقاديرشان را به صورت کد تعداد از رجيسترى ميخوانند مثلا من برنامه اى به نام Active Start JSP نوشته بودم که براى حفظ امنيت ورود و خروج اطلاعات به جاى اينکه به دنبال مثلا مقدار Tnt در رجيسترى بگردد, تمام مقاديرى را که سه حرف اولشان Tnt بود ميخواند. پس اگر من از داده Tnt به روش فوق الذکر پشتيبان نميگرفتم برنامه ام همه داده ها را تغيير ميداد)

J- بايد اعتراف کنم که خود من درخصوص عملکردن به توصيه هاى خودم چندان دقيق نيستم. فراموش کردن تهيه پشتيبان به روش فوق از مقادير بيش از انجام اين کار آسان است. اما چگونه ميتوان تشخيص داد که يک سرى تغييرات ساده باعث غرق شدن کشتى نميشود ؟!؟! يقينا نميتوان. بنابراين بايد براساس گفته هاى من عمل کنيد نه عملکردم! (بيش از تغيير يا حذف مقادير از آنها پشتيبان گيرى کنيد)

صادر کردن Export کليد ها به فايل هاى Reg
براي اين کار کافيست روى کليد مورد نظرتان راست کليک کرده و گزينه Export را انتخاب کنيد. به اين ترتيب منويى ظاهر ميشود که فرمت پيش فرض براى صادر کردن آن کليد را فرمت Reg قرار داده (در قسمت Save as type منو عبارت Registration Files *.reg را ملاحظه کنيد). براى فايل خروجى نامى را وارد کنيد و منو را تاييد کنيد. (در صورتى که بخواهيد تمام رجيسترى خود را به فايل صادر کنيد گزينه راديويى All را در کادر Export range علامت بزنيد).
شما ميتوانيد در محيط ويندوز اكسپلورر با راست کليک روى فايل هاى Reg و انتخاب گزينه Edit محتواى آنها را ببينيد و يا ويرايش کنيد.

صادر کردن Export کليد ها به فايل هاى Hive
صادر کردن به فايل هاى Hive مشابه فايل هاى Reg است با اين تفاوت که در در قسمت Save as type منوى Export عبارت *.* Registry Hive Files را انتخاب ميکنيد و ميتوانيد هر پسوندى براى فايل خود بگذاريد يا حتى فايل را بدون پسوند ذخيره کنيد. من شخصا پسوند hive. را ترجيح ميدهم. در هر حال شما قادر به ويرايش فايل Hive ى که ساخته ايد نخواهيد بود.(به مقاله اسرار رجيسترى فصل اول : فايل هاى Hive مراجعه کنيد)

وارد کردن Import فايل هاى Reg و Hive
مزيت فايل هاى Reg در آن است که با اجراى يک فايل Reg ويندوز متوجه ميشود که شما ميخواهيد اطلاعات موجود در آن فايل را در رجيسترى وارد کنيد به اين ترتيب بعد از دوبل کليک (اجرا کردن فايل Reg) ويندوز از شما سوال ميکند که آيا مايليد تغييرات اعمال شوند ؟! ... و آن فايل را وارد ميکند.
به غير از اجراى فايل هاى Reg ميتوانيد از منوى File ويرايشگر رجيسترى خود گزينه Import را انتخاب کنيد و به اين ترتيب نيز فايل Reg مورد نظرتان را در رجيسترى وارد کنيد. براى وارد کردن فايل هاى Hive هم جز Import کردن آنها از منوى File برنامه Regedit چاره ديگرى نداريد.

تفاوت فايل هاى Reg با Hive
فايل هاى Hive از نظر ساختار قابل اطمينان ترند زيرا شما ميدانيد فايل Hive که از يک سيستم ديگر به دستتان رسيده دست کارى نشده و با خيالى آسوده آن را Import ميکنيد.
* وقتى يک فايل Reg را به سيستمتان وارد ميکنيد Regedit به جاى جايگزينى تنظيمات موجود در فايل Reg آنها را با تنظيمات موجود در رجيسترى ادغام ميکند. اين بدان معناست که Regedit مقادير موجود در فايل Reg را ايجاد يا جايگزين ميکند ولى مقاديرى که در فايل Reg موجود نيستند اما در رجيسترى وجود دارند حذف نميشوند !. اما فايل هاى Hive اينطور نيستند يعنى به محض وارد کردن آنها Regedit کليد ها و مقادير موجود در فايل Hive را به طور کلى از رجيسترى پاک کرده و مقادرير جديد موجود در فايل Hive را جايگزين آنها ميکند.(همين يک دليل کافيست که من تمام پشتيبان هايم را از رجيسترى به صورت فايل Hive ذخيره کنم)

* روش هاى فوق (Import يا Export بخشهايى از رجيسترى) به منظور پشتيبان گيرى از راه دور هم کار ميکنند. شما ميتوانيد با انتخاب گزينه Connect Network Registry ار منوى فايل File ويرايشگر رجيسترى خود به يک کامپيوتر در حوزه شبکه و دسترسى خود, متصل شويد و محتواى رجيسترى آن سيستم را در ويرايشگر خود ملاحظه کنيد ...

* برنامه نويسان هم ميتوانند خيلى راحت به وسيله فايل Reg.exe کارهاى بزرگى در رجيسترى انجام دهند. مثلا صادر کردن يا وارد کردن يک فايل Reg يا Hive فقط به وسيله يک خط کد. البته کار با فايل Reg.exe کمى خطرناک است. پس ماجراجويى نکنيد اجازه دهيد در مقاله اى مخصوص راجع به اين فايل مهم همه چيز را توضيح خواهم داد.

طريقه بارگذارى فايل هاى Load Hive
توجه کنيد: بارگذارى Load کردن با وارد کردن Import فايل هاى Hive دو مقوله کاملا مجزا از هم هستند.(Import کردن را توضيح دادم)
وقتى شما يک فايل Hive را بارگذارى ميکنيد ويراستار رجيسترى شاخه جديدى را ايجاد ميکند و آن را به شما نشان ميدهد, که حاوى محتويات فايل Load شده است.
براى بارگذارى فايل Hive:
1) يکى از دو کليد اصلى HKLM يا HKU را در محيط Regedit انتخاب کنيد.
2) از منوى File گزينه Load Hive که همکنون فعال شده است را انتخاب کنيد.
3) فايل Hive مورد نظر خود را Open کنيد.(فرقى نميکند که آن را شما ايجاد کرده ايد يا اينکه مثلا يکى از فايل هاى Hive اصلى يك سيستم است)
4) نامى را براى کليدى که قرار است محتويات فايل Hive انتخابى شما, در آن به نمايش در بيايد را در منوى مورد درخواست بنويسيد و آن را تاييد کنيد.
به اين ترتيب خواهيد ديد که Regedit کليدى به Sub key انتخابى شما اضافه ميکند که اگر آن کليد را باز کنيد ميتوانيد محتويات فايل Hive انتخابيتان را در آنجا ببينيد.

ويندوز از کليد جديدى که شما ايجاد کرده ايد هيچ استفاده اى نميکند. اما فايل Hive که بارگذارى شده توسط سيستم قفل شده و به عنوان يکى از فايل هاى Hive اصلى شناخته ميشود. ( يعنى ديگر قادر به انجام هيچ عمل کنترلى بر روى فايل Hive بارگذارى شده نخواهيد بود)
به وسيله بارگذارى فايل هاى Hive ميتوانيد گره هاى کور زيادى را از سيستم خود يا يک کامپيوتر بومى باز کنيد. زمانى که شما يک فايل Hive را Import ميکرديد بايد بى چون و چرا تنظيماتتان را به زمان ساخت آن فايل پشتيبان Hive برميگردانديد, اما در Load کردن با ايجاد يک کليد جديد در کنار بقيه کليد ها ميتوانيد مقادير حال و گذشته, مقادير رجيسترى سيستم خود با يک سيستم ديگر را ببينيد همين طور صحت داده ها را مقايسه کرده و به اين ترتيب مشکلات را بدون خرابکارى مضاعف حل و فصل کنيد.
اگر چه وارد کردن Import يک فايل Hive روش خوبى براى احياى يک شاخه است اما بارگذارى Load کردن يک فايل Hive روش مناسبى براى احياى آزمايشى تنظيمات يا صرفا بررسى و مقايسه يک مقدار است.

* يک نکته بسيار مهم: فراموش نکنيد قبل از بستن ويراستار خود حتما فايل Hive بارگذارى Load شده را خارج  يا Unload کنيد در غير اين صورت ممکن است ديگر قادر به Unload کردن آن نباشيد و به اين ترتيب يک رجيسترى مثلا با "سه گوش" يا "چند چشم" خواهيد داشت. براى UnLoad کردن فايل Hive کافيست روى کليدى که به تازگى ايجاد شده و حاوى فايل Hive است کليک کرده و گزينه UnLoad Hive را از منوى File انتخاب کنيد.

J- در مقاله بعدى منابع آلى از فايل هاى Hive که به وسيله سيستم, برنامه هاى پشتيبان گيرى مانند NtBackup يا System Restore ايجاد شده اند را در اختيار شما قرار ميدهم.

J- تاکنون مطالبى که در اين سلسله مقالات "اسرار رجيسترى" ارائه شد براى آشنايى کاربران در سطوح متوسط و پيشرفته, از ناگفته هاى رجيسترى بود. از جلسات بعدى وارد مباحث عملى کار ميشويم. شما برنامه نويسان بهترين بهره را از اين مطالب خواهيد برد چرا که در آينده اى نچندان دور خواهيد توانست به وسيله برنامه اى که مينويسيد و با کمک اسرار رجيسترى برنامه هايى توليد کنيد که قادرند همه چيز ويندوز را تحت تاثير ونفوذ خود قرار دهند.

J- مطالب ارائه شده در اين 4 فصل را با دقت بخوانيد. مقالات بعدى حاوى مطالبى هستند كه لازمه درست عمل کردنشان آگاهى شما از اصول کار ميباشد. مثلا اگر شما نتوانيد از رجيسترى خود پشتيبان تهيه کنيد وقتى به شما بگويم که چگونه ميتوان Windows Installer را از کار انداخت و شما يکى از مراحل کار را اشتباه پيش ببريد (اين مسئله هميشه در هنگام يادگيرى هر مطلبى ممكن است پيش بيايد) ديگر قادر به نصب حداقل 90 درصد برنامه ها نخواهيد بود و حتى نميتوانيد برنامه اى را از حالت نصب خارج کنيد !!! (در اين مورد چاره اى جز نصب مجدد ويندوز نخواهيد داشت)

J- رجيسترى قلب و روح ويندوز است و يک برنامه نويس حرفه اى برنامه نويسى است که محيط کار خود (يعنى سيستم عاملش) را به خوبى بشناسد.

چگونه ميتوان يك دسكتاپ شفارشى داشت ؟! 

در اين مقاله بخوانيد:
تغییر محل فولدر های ویژه
تغییر فولدرهاى شل با توجه به نيازهاى شخصى
جدول اشياء شل معروف
تغییر نام نمادهای تصویری دسکتاپ
استفاده از تصاویر شخصی برای نمادهای تصویری
افزودن نمادهای تصویری به دسکتاپ
پنهان کردن نمادهای تصویری از دسکتاپ



تغییر محل فولدر های ویژه

فولدر های ویژه شامل My Documents, My Pictures, Favorites و فولدر های زیاد دیگری میباشد.
کاربران ممکن است به دلایل مختلف بخواهند محل این فولدر های ویژه را تغییر دهند, اما تنها سه دلیل به ذهن من میرسد. نخست اینکه فلدر My Documents را به والیوم دیگری انتقال دهند. به عنوان مثال , کاربران ممکن است بخواهند My Documents را به درایو دیگری به جزء درایو سیستم عامل انتقال دهند تا بتوانند ویندوزشان را بدون از دست دادن سندهای خودشان از نو نصب کنند. دلیل دیگر به مواقعی مربوط می شود که کاربران یک شبکه بخواهند از بیش از یک کامپیوتر به سندهای خود دستیابی داشته باشند. در این گونه شرایط میتوانند فولدرهای My Documents و Favorites را به محلی در شبکه انتقال دهند تا از هر جایی بتوانند  به آنها دسترسی داشته باشند. متخصصان IT نیز اغلب تمایل دارند My Documents را به محلی در شبکه انتقال دهند تا پشتیبان گیری از سندهای کاربران آسانتر شود. اما دلیل آخر به منظور تغییر محل فولدرهای ویژه که خود من از آن بهره میبرم استفاده از چند سیستم عامل در یک PC میباشد.

J- در این مورد شخصا برای حفظ امنیت در برابر هکر ها, تروجان ها و بخصوص ویروس ها همین طور سبک کردن ویندوز برای ورود به شبکه در برابر نرم افزار های سنگین, از یک ویندوز مجزا برای ورود به شبکه استفاده میکنم. به این ترتیب هر گونه عمل خرابکاری یا حمله از هر نوع از شبکه موجب قربانی شدن فقط همین ویندوز شده و خیلی راحت از طریق آن یکی سیستم میتوانم اوضاء را به حالت سلامت ویندوز شبکه برگردانم. در ضمن با وجود دو ویندوز برای دو حدف مختلف میتوانم صحت عملکرد برنامه های تازه تحریر شده ام را محک بزنم. در عین حال تمایل دارم سندهای هر دو ویندوز در یک مکان وجود داشته باشند. به این ترتیب بعد از نصب سیستم ها یکی از اولویت های کاری تغییر محل فولدر My Documents هر دو سیستم به یک مکان میباشد. کلید


HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders


را کاوش کنید. در این کلید مى توانید محل ذخیره فولدر های ویژه خاص-کاربر را توسط ویندوز مشاهده کنید. هر مقدار در این کلید یک فولدر ویژه است. این مقادیر, از نوع Reg_Expand_SZ هستند, بنابراین می توانید متغییرهای محیطی را در آنها به کار بگیرید. مثلا با استفاده از %USERNAME% در یک مسیر می توانید نام کاربران را در آنها بگنجانید. براى مثال اگر بخواهيد محل فولدر Favorites کاربران به محلی در شبکه منتقل شود مقدار Favorites را در کلید مذکور به:

\\ Server\Share\%USERNAME%\Favorites

تغییر دهید, که \\Server\Share نشان دهنده سرویس دهنده و محلی در آن است که فولدرها در آن قرار خواهند گرفت.

البته کلید دیگری حاوی داده هایی در همان مسیر وجود دارد کلید


HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders


را کاوش کنید. وقتی کاربر در مرتبه آتی ارتباط برقرار میکند ویندوز کلید Shell Folders را با تبدیل مسیر های موجود در User Shell Folders به روز می رساند. در حقیقت در مستندات مایکروسافت گفته شده که ویندوز از Shell Folders استفاده نمیکند و این کلید فقط برای مشاهده و استفاده کاربران میباشد.

پس برای جابه جا کردن این گونه فولدر ها کافیست محتوای داده های موجود در کلید User Shell Folders را با توجه به نیاز خود تغییر دهید.

* بعد از هر گونه تغییری در محتوای کلید فوق به منظور اعمال تغییرات کافیست ارتباط خود را با اکانت کاربریتان قطع و مجددا وصل کنید یعنی Log off و بعد Log on کنید.

* فولدر های ویژه این قسمت, فولدر های خاص-کاربر هستند و در فولدر های, پروفایل های کاربران قرار دارند. ویندوز فولدر های خاص-کامپیوتر را در HKLM ذخیره میکند. Commom AppData, Common Desktop و Common Documents مثالهایی از فولدر های خاص-کامپیوتر هستند, اما تغییر محل این فولدر ها چندان مفید نیست.

تغییر فولدرهای شل با توجه به نیازهای شخصی

برخی از فوادرهایی که در ویندوز اکسپلورر, کنترل پانل یا دسکتاپ میبینید, واقعا در فایل سیستم وجود ندارند. بلکه اینگونه موارد, شیءهای مبتنی بر کلاسهای ثبت شده در کلید HKCR\CLSID هستند. برخی از فولدرها و فایل هایی که در فایل سیستم وجود ندارند, قابلیت ویژه ای دارند (مثلا فولدر History يا Briefcase) و این قابلیتها نیز ناشی از کلاس های ثبت شده در HKCR\CLSID هستند. هر کلاس اساسا یک الگو برای ایجاد یک چیز واقعی است مثلا, یک شیء در رابط کاربران. CLSID محلی است که این کلاس ها خودشان را در آنجا به ثبت می رسانند تا ویندوز از وجود آنها آگاه باشد.
برنامه های دیگر نیز ممکن است کلاس هایی را به ثبت برسانند که به آسانی میتوانید موارد جالب را در HKCR\CLSID پیدا کنید, چرا که تمام آنها یک زیر کلید به نام ShellFolder دارند که دارای مقدار Attributes است.
J- در آینده ای نچندان دور شرح Attributes را به طور مفصل بیان میکنم.

کلاس هایی که دارای مقدار LocalizedString هستند نیز ممکن است کاندید منابعی برای تغییرات شخصی باشند, چرا که آنها این مقدار را فقط در صورتی خواهند داشت که شیءهای مبتنی بر آن کلاس ها در رابط کاربران ظاهر شوند. این کلاس ها مقاصد گوناگون دارند, و اغلب از آنها برای کاوش کردن در ویندوز استفاده خواهید کرد. جدول زیر آن دسته از کلاس های ثبت شده در HLCR\CLSID را نشان میدهد که به نظر من جالب هستند

شیء                                      GUID - شناسه کلاس
________________________________________________________________________
* فولدرهای شل  Folders Shell
ActiveX Cache                       {88C6C381-2E85-11D0-94DE-444553540000}
Computer Search Results      {1f4de370-d627-11d1-ba4f-00a0c91eedba}
 History                                  {FF393560-C2A7-11CF-BFF4-444553540000}
 Internet Explorer                  {871C5380-42A0-1069-A2EA-08002B30309D}
 My Computer                        {20D04FE0-3AEA-1069-A2D8-08002B30309D}
 My Documents                      {450D8FBA-AD25-11D0-98A8-0800361B1103}
 My Network Places               {208D2C60-3AEA-1069-A2D7-08002B30309D}
 Offline Files                          {AFDB1F70-2A4C-11d2-9039-00C04F8EEB3E}
 Programs                              {7be9d83c-a729-4d97-b5a7-1b7313c39e0a}
 Recycle Bin                           {645FF040-5081-101B-9F08-00AA002F954E}
 Search Results                     {e17d4fc0-5564-11d1-83f2-00a0c90dc849}
 Shared Documents               {59031a47-3f72-44a7-89c5-5595fe6b30ee}
 Start Menu                           {48e7caab-b918-4e58-a94d-505519c795dc}
 Temporary Internet Files     {7BD29E00-76C1-11CF-9DD0-00A0C9034933}
 Web                                     {BDEADF00-C265-11D0-BCED-00A0C90AB50F}

* فولدرهای کنترل پانل
Control Panel                       {21EC2020-3AEA-1069-A2DD-08002B30309D}
 Administrative Tools            {D20EA4E1-3957-11d2-A40B-0C5020524153}
 Fonts                                   {D20EA4E1-3957-11d2-A40B-0C5020524152}
 Dial-up Connection              {7007ACC1-3202-11D1-AAD2-00805FC1270E}
 Network Connections          {7007ACC7-3202-11D1-AAD2-00805FC1270E}
 Printers and Faxes              {2227A280-3AEA-1069-A2DE-08002B30309D}
 Scanners & Cameras           {E211B736-43FD-11D1-9EFB-0000F8757FCD}
 Scheduled Tasks                  {D6277990-4C6A-11CF-8D87-00AA0060F5BF}

* نمادهای تصویری کنترل پانل
 Folder Options                     {6DFD7C5C-2451-11d3-A299-00C04F8EF6AF}
 Taskbar and Start Menu      {0DF44EAA-FF21-4412-828E-260A8728E7F1}
 User Accounts                     {7A9D77BD-5403-11d2-8785-2E0420524153}

* سایر موارد
 Add Network Place              {D4480A50-BA28-11d1-8E75-00C04FA31A86}
 Briefcase                             {85BBD920-42A0-1069-A2E4-08002B30309D}
 Search                                 {2559a1f0-21d7-11d4-bdaf-00c04f60b9f0}
 Help and Support                {2559a1f1-21d7-11d4-bdaf-00c04f60b9f0}
 Windows Security               {2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}
 Run                                     {2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}
 Internet                              {2559a1f4-21d7-11d4-bdaf-00c04f60b9f0}
 E-mail                                  {2559a1f5-21d7-11d4-bdaf-00c04f60b9f0}
 Network Setup Wizard        {2728520d-1ec8-4c68-a551-316b684c4ea7}

 

J- هر شیء در جدول فوق دارای یک شناسه کلاس یا GUID است. این GUID درون همه کامپیوترها برای اشیاء نام برده یکسان میباشند. برای کسب اطلاعات بیشتر در رابطه با GUID ها به مقاله اسرار رجیستری فصل دوم : شناسه هاى امنيت SID مراجعه کنید.

من این جدول را به چهار قسمت تقسیم کرده ام. همان طور که در جدول میبینید بخش نخست یعنی فولدرهای شل که فولدرهایی هستند با مقاصد ویژه مثلا My Computer یا Network Places و غیره. پس از مسلح شدن به اطلاعات این جدول میتوانید کارهای زیادی انجام دهید. به عنوان مثال میتوانید فولدرهایی که در My Computer نمایش داده میشوند را با توجه به نیازهای شخصی خود تعیین کنید. و  یا میتوانید نمادهای تصویری که در دسکتاپ نمایش داده میشوند را تغییر دهید, و یا تعیین کنید که اصلا کدام نماد تصویری بر روی دسکتاپ نمایش داده شود. به عنوان مثال, مدیران برای دستیابی سریعتر به فولدر Administrative Tools اغلب ترجیه میدهند نماد تصویری Administrative Tools را بر روی دسکتاپ قرار دهند.
J- برای آگاهی هر چه بیشتر شما با این موارد, چند بخش عملی را در زیر عنوان میکنم.

تغییر نام نمادهای تصویری دسکتاپ

نمادهای تصویری همچون My Computer, My Documents, Internet Explorer را میتوانید خیلی راحت با راست کلید بر رویشان و انتخاب گزینه Rename تغییر نام دهید. اما تغییر نام نمادهای تصویری دیگر همچون Recycle Bin, چندان آسان نیست. این گونه نمادها فاقد فرمان Rename هستند !
برای تغییر نام یک نماد تصویری بدون استفاده از فرمان Rename میتوانید از طریق ویرایش اطلاعات ثبت کلاس آن عمل کنید. مقدار LocalizedString را تغییر دهید. به مثال ذیل توجه کنید:
GUID کلاس Recycle Bin در جدول بالا {645FF040-5081-101B-9F08-00AA002F954E} است. برای اینکه نام این نماد را به Trash Can تغییر دهید مقدار LocalizedString  را در کلید


HKCR\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}


به Trash Can تغییر دهید. پس از انجام این کار دسکتاپ را با ماوس برگزینید و کلید F5 (یا همان فرمان Refresh) را برای نوسازی محتوای آن نماد فشار دهید. در اینجا مقدار LocalizedString  برای GUID نام برده, در حالت معمول چیزی برابر


@%SystemRoot%\system32\SHELL32.dll,-8964


میباشد که معنای آن این است که ویندوز رشته را با ID شماره 8964 از فایل SHELL32.dll به کار میبرد. کافیست آن را با نام جدید جایگزین کنید.
* LocalizedString  یک مقدار Reg_EXPAND_SZ میباشد, بنابراین میتوانید در آن از متغییرهای محیطی استفاده کنید. به عنوان مثال نام آن را به "USERNAME% Garbage%" تغییر دهید تا برای کاربری به نام Javad عبارت "Javad's Garbage" در زیر نماد تصویری نمایش داده شود (حتی میتوانید حروف فارسی را نیز در آن به کار بگیرید).
یا مثلا GUID کلاس My Computer برابر {20D04FE0-3AEA-1069-A2D8-08002B30309D} است. شما باید LocalizedString  را در


HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}


به "کامپیوتر %USERNAME%" تغییر دهید تا برای کاربری مثلا با نام جواد عبارت "کامپیوتر جواد" در زیر نماد تصویری My Computer نمایش داده شود.

J- به منظور بهتر روشن شدن موضوع فوق, یک برنامه که موجب تغییر نام برخی از نماد های تصویری دسکتاپ می شود را در اینجا قرار داده ام. البته سورس کد به زبان VB6 است تا برای همه قابل استفاده باشد.

* مقدار LocalizedString را در اطلاعات ثبت بعضی از کلاس ها نخواهید دید. عدم وجود این مقدار نشانگر آن است که مایکروسافت تمایلی به نمایش نام آن شیء ها در رابط کاربر نداشته است. برای تغییر نام کلاسی که فاقد این مقدار است, مقدار پیش فرض HKCR\CLSID\classID را تغییر دهید, و  یا حتی بهتر است LocalizedString  را به آن کلاس بیافزایید. وقتی ویندوز نام یک شیء را جستجو میکند, ابتدا برای یافتن LocalizedString اقدام میکند, و بعد برای مقدار پیش فرض اطلاعات ثبت کلاس.

استفاده از تصاویر شخصی برای نمادهای تصویری

تمام کلاس های مطرح در جدول بالايى اين مقاله دارای زیر کلید DefaultIcon هستند. مقدار پیش فرض این زیر کلید, نماد تصویری است که ویندوز به هنگام نمایش شیءهای مبتنی بر آن کلاس به کار میبرد. به عنوان مثال, مقدار پیش فرض DefaultIcon در


HKCR\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}


نماد تصویری است که ویندوز به هنگام ایجاد شیء My Computer در رابط کاربر (مثلا ویندوز اکسپلورر بر روی دسکتاپ), نمایش می دهد.
برای اینکه از یک نماد تصویری دیگر استفاده کنید, مقدار پیش فرض DefaultIcon را تغییر دهید. برای این کار میتوان از مسیر و نام فایل یک نماد تصویری, با انشعاب ico , استفاده کنید, و یا حتی از یک مسیر مبداء resource استفاده نمایید. مسیر مبداء به شکل Name,Index   یا   Name,-resID   است Name, همان مسیر و نام فایل حاوی نماد تصویری است که معمولا یک فایل Dll یا EXE است. بیشتر نماد های تصویری مورد استفاده در ویندوزهای32 بیتی از

%SystemRoot%\System32\Shell32.dll


به دست میایند. Index, شماره ایندکس نمادهای تصویری است که از صفر آغاز میشوند. resID, شناسه منبع نماد تصویری است. برنامه سازان ID هایی را به منابعی که فایل های برنامه ای, از جمله نماد های تصویری, رشته ها, کادرهای مکالمه و غیره, را در آنها ذخیره میکنند, تخصیص میدهند.
J- همکنون برنامه های زیادی وجود دارند که نمادهای تصویری موجود در یک فایل برنامه, را پیکربندی میکنند. به عنوان نمونه Microangelo یا PEexplorer را معرفی میکنم. این ابزارآلات حتی نمادهای تصویری را از یک فایل Dll یا EXE استخراج میکنند تا بتوانید آنها را به طور مجزا به کار ببندید.

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

دسکتاپ ویندوز به خصوص در نسخه XP آن بسیار منظم تر از نگارشهای پیشین ویندوز است. طبق پیش فرض تنها نماد تصویری Recycle Bin را در آن خواهید دید. اما میتوانید نمادهای تصویری متداول را به آن بیافزایید. شما قادر به اضافه کردن نمادهای تصویری Internet Explorer, My Computer, My Documents و My Network Places از طریق رابط کاربری Display به دسکتاپ خواهید بود (بحث فوق کاملا مجزا از ایجاد و توزیع Shortcut ها میباشد. در اینجا ایجاد کیفی و اصولی اشیاء مد نظر است. آموزش مطالب فوق به خصوص برای شما برنامه نویسان روشن میکند که ویندوز چگونه میتواند یک عملیات ایجاد يا تغییر را فقط به وسیله اطلاعات رجیستری انجام دهد, از این مطالب در آینده, به طور مستقیم در برنامه هایی که مینویسید استفاده خواهید کرد).
در صورتی که نماد تصویری مورد نظرتان جزء چهار مورد بالا نیست, چنانچه میخواهید نمادهای تصویری را به فولدرهای ویژه اضافه کنید, میبایست رجیستری را ویرایش کنید. تمام روشهایی که در این قسمت یاد خواهید گرفت به شاخه Software\Microsoft\Windows\CurrentVersion\Explorer مربوط می شوند. این شاخه را در کلید HKLM تغییر دهید تا تغییرات برای تمام کاربران باشند; چنانچه تغییرات مورد نظر را در HLCU اعمال کنید, در آن صورت تغییرات برای یک کاربر خاص خواهند بود. به شکل زیر توجه کنید:

همان طور که در تصویر میبینید زیر کلید های NameSpace مربوط به Explorer\ControlPanel, Explorer\Desktop و   Explorer\MyComputer محتوای هر یک از فولدرهای متناظر با این موارد را تعیین میکند. با ویرایش زیر کلیدهای فهرست شده در جدول ابتدایی این مقاله, قادر خواهید بود نمادهای تصویری را به کنترل پانل, دسکتاپ و غیره بیافزایید. به عنوان مثال برای افزودن یک نماد تصویری به دسکتاپ جهت باز کردن کادر مکالمه Run یک زیر کلید جدید به نام  {2559a1f3-21d7-11d4-bdaf-00c04f60b9f0} , (که معادل GUID کادر مکالمه Run در جدول فوق الذکر است) به شاخه Explorer\Desktop بیافزایید. سپس با Refresh کردن دسکتاپ میتوانید نتیجه را ملاحظه کنید. با اجرای فرمان زیر در منوی Run قادر به انجام این کار به طور خودکار خواهید بود:

Reg Add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}"

برای معکوس کردن فرمان بالا عبارت زیر را در Run اجرا کنید.

Reg Delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}" /f

فقط بعد از اجرای هر فرمان, Refresh روی دسکتاپ را فراموش نکنید.

* تنها فولدرهای ویژه کاندیدهایی برای اضافه شدن به My Computer هستند. دلیل این امر کاملا روشن است. پس فقط فولدرهای شل موجود در بخش اول جدول, ابتدایی همین مقاله, را میتوانید به شاخه Explorer\MyComputer\NameSpace اضافه کنید.

فرمان زیر موجب اضافه شدن نماد تصویری Internet Explorer به My Computer می شود :

Reg Add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{871C5380-42A0-1069-A2EA-08002B30309D}"

با فرمان زیر عملکرد عملیات بالا را به حالت قبل برگردانید:

Reg Delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{871C5380-42A0-1069-A2EA-08002B30309D}" /f

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

در نگارش های ویندوز تا قبل از ویندوز XP برای برداشتن نمادهای تصویری از دسکتاپ مجبور هستید که زیر کلیدهای آنها را از NameSpace حذف کنید. این امر اغلب مشکل ساز می شود, به ویژه به هنگام برداشتن نماد تصویری Network Neighborhood از دسکتاپ.
از نگارش ویندوز XP به بعد, روش های ویژه ای برای پنهان کردن نمادهای تصویری دسکتاپ به وجود آمده است. برای برداشتن آنها از دسکتاپ یا My Computer میتوانید شاخه Software\Microsoft\Windows\CurrentVersion\Explorer را در کلیدهای HKLM و HKCU ویرایش کنید. برای اینکه نمادهای تصویری را در MY Computer پنهان کنید, یک مقدار نوع Reg_DWORD در کلید SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideMyComputerIcons ایجاد کنید و بهتر است نام آن, GUID کلاس نماد تصویری باشد که می خواهید پنهان کنید, و مقدار 0x01 را به آن اختصاص دهید. و در آخر برای مشاهده نتیجه کار ویندوز اکسپلورر را نوسازی Refresh کنید.

پنهان سازی نمادهای تصویری دسکتاپ قدری پیچیده تر است. دو زیر کلید به نام های ClassicStartMenu و NewStartPanel در مسیر SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons وجود دارند. زیر کلید اول برای زمانی که ویندوز XP از منوی Start قدیمی یا کلاسیک خود, استفاده میکند, در نظر گرفته شده است. و در آن با اضافه کردن مقدارهای جدید مطابق دستورالعملی که ذکر شد میتوانید تعیین کنید کدام نمادهای تصویری در دسكتاپ نمایش داده شوند. به همین ترتیب موارد ذکر شده برای NewStartPanel یعنی منوی Start جدید ویندوز اکس پی صادق میباشد (به تصویر قبلی توجه کنید).
به عنوان مثال فرمان زیر باعث مخفی شدن نماد تصویری Recycle Bin سطل زباله از دسکتاپ در شرایط استفاده از منوی Start جدید, در ویندوزهای XP به بعد میشود (فراموش نکنید برای مخفی کردن یا برداشتن Recycle Bin از دسکتاپ در ویندوز هیچ رابط کاربری وجود ندارد):

Reg Add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{645FF040-5081-101B-9F08-00AA002F954E}" /t REG_DWORD /d "0x01" /f

فرمان زیر را در منوی Run اجرا کنید تا Recycle Bin باز به دسکتاپ باز گردد:

Reg Add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v "{645FF040-5081-101B-9F08-00AA002F954E}" /t REG_DWORD /d "0x00" /f


J- همان طور که در این مقاله مشاهده کردید کارهای عملی در اين سلسله مقالات رو به افزایش است. به این منظور از شما می خواهم قبل از انجام هر عمل کنکاش در رجیستری خود تهیه نسخه های پشتیبان, همان طور که در مقالات قبل معرفی گردیدند, را فراموش نکنید.
J- در این مقاله چند روش عملی با استفاده از فایل Reg.exe به انجام رسید برای کسب اطلاعات بیشتر در رابطه با این رابط ارزشمند رجیستری, منتظر مقالات بعدی باشید, اما اگر عجله دارید به شما پیشنهاد میکنم فرمان Reg را با سویچ ؟ در جلوی اعلان داس, محیط Command Prompt اجرا کنید.

 

 

 

آموزش رجيستري