دلفی و رجیستری - نسخه قابل چاپ +- Parsi Coders (http://parsicoders.com) +-- انجمن: Software Development Programming (http://parsicoders.com/forumdisplay.php?fid=37) +--- انجمن: Pascal/Delphi (http://parsicoders.com/forumdisplay.php?fid=45) +---- انجمن: Delphi (http://parsicoders.com/forumdisplay.php?fid=69) +---- موضوع: دلفی و رجیستری (/showthread.php?tid=228) |
دلفی و رجیستری - Amin_Mansouri - 05-07-2011 برنامه ی رجیستری برنامه ای می باشد كه ویندوز آن را در اختیار كاربر قرار داده است تا بتواند در دستورات و مقدارهای registery تغییراتی را به دلخواه ایجاد كند . می توان گفت كه انگیزه ی ساختن برنامه ی رجیستری از آنجایی شروع شد كه كاربران Ms-DOS از این كه عملا هیچگونه اختیاری در تنظیم منو ، پنجره ها و ... نداشتند ،خسته شدند. البته Ms-DOS از رجیستری مستثنی نبود و سه فایل Config.sys , MsDos.sys, Autoexec.Bat وجود داشتند كه سیستم عامل Dos و جمعا برنامه های كاربردی تنظیماتی مانند اختصاص دادن Buffer و یا تعریف Cdrom و غیره را در این فایل ها ثبت می كردند. در واقع این سه فایل نقش رجیستری را ایفا می كردند. بعد از DOS سیستم عامل Win۳X به بازار آمد. در این سیستم عامل فایلهایی با پسوند ini كه مهمترین آنها Win.ini , System.ini, Control.ini بودند، وظیفه رجیستری را بر عهده داشتند . در نهایت نسل سوم رجیستری با روی كار آمدن ویندوز ۹X وارد بازار شد. در این سیستم ها علاوه بر داشتن سه فایل Win۳X دو فایل دیگر با نامهای System.dat , User.dat اضافه شد . تعریف رجیستری : برنامه ی رجیستری برنامه ای می باشد كه ویندوز آن را در اختیار كاربر قرار داده است تا بتواند در دستورات و مقدارهای registery تغییراتی را به دلخواه ایجاد كند . لازم به ذكر است كه اگر اطلاعات كافی در مورد قسمتی از رجیستری ندارید هیچگاه آن را تغییر ندهید زیرا هر تغییری در رجیستری سریعا اعمال خواهد شد و برنامه ی regedit.exe هیچگونه تاییدی از كاربر نخواهد گرفت . Regedit.exe را چه چگونه اجرا كنیم؟ برای اجرا كردن Regedit.exe وارد منوی Run از دكمه Start شده، تایپ كنید Regedit.exe ، با فشردن دكمه ی OK برنامه اجرا خواهد شد . رجیستری شامل دو پنجره است كه در پنجره ی سمت چپ ریشه و در پنجره ی سمت راست مقدارها مشخص می شود. در پنجره ی سمت چپ یك ریشه به نام My Computer و۵ شاخه با عنوان های زیر وجود دارد : ۱ - HKEY_CLASSES_ROOT : شامل تناظر پسوند فایل ها و سایر تنظیمات ویندوز است . ۲ -HKEY_CURRENT_USER : شامل تنظیماتی كه مختص كاربر فعلی است . ۳ - HKEY_LOCAL_MACHINE : شامل تنظیماتی كه به طور سراسری اعمال می شود و به كاربر وابسته نیست . ۴ -HKEY_USERS : شامل تنظیماتی كه مختص هر یك از كاربران متعدد كامپیوتر ، از جمله كاربر فعلی است . ۵ - HKEY_CURRENT_CONFIG : شا مل تنظیماتی كه مختص پیكربندی سخت افزار موجود می باشد . اگر مفاهیم اولیه ی رجیستری را به خوبی یاد بگیرید دیگر هیچگاه واهمه ای در اعمال تغییرات در آن نخواهید داشت . ==================================== برای استفاده از رجیستری ابتدا باید یونیت Registry را به لیست یونیتهای دلفی در قسمت Uses اضافه کنید. دکمه ای روی فرم قرار داده در رویداد OnClick اون ابتدا قبل از Begin کلمه ی Var را اضافه کرده و متغیری مانند Reg از نوع Tregistry تغریف نمایید. بعد از Begin کلاس رجیستری را ایجاد می نماییم. کد شما یه شکل زیر خواهد بود. کد: procedure TForm1.Button1Click(Sender: TObject); ==================================== ابتدا متد Rootkey . این متد برای تعریف یک شاخه ی پیش فرض اولیه به کار می رود و مقدار اون فقط می تواند 5 شاخه ی ذکر شده در پست اول باشد. مثلا کد: reg.rootkey:=Hkey_current_user; RE: دلفی و رجیستری - Amin_Mansouri - 05-07-2011 شما برای کار با رجیستری در دلفی نیاز به تعریف و نوشتن هیچ کلاس و متد و آبجکت ندارید شرکت برای کار با رجیستر یه یونیت با همین نام Registry ارائه داده است برای کار با رجیستر شامل کلاس TRegistry که دارای روال ها و تابع های خاصی مثل CreateKey یا WriteString یا DeleteKey یا MoveKey یا ReadFloat و....میباشد. نحو اصلی کار با رجیستری و ثبت کردن مقدار ایجاد یک کلید و.... به این صورت می باشد که : ابتدا یونیت رجیستری رو به لیست Uses یونیتمون اضافه می کنیم به شکل زیر : کد: uses کد: Var کد: b:=TRegistry.Create; کد پیاچپی: HKEY_CLASSES_ROOT B.RootKey:=HKEY_LOCAL_MACHINE; سپس باید آدرس مربوط به کلیدی که می خواهیم در آن اعمال انجام دهیم رو با استفاده از تابع OpenKey مشخص کنیم به شکل زیر : B.OpenKey(آدرس کلید مربوطه , اجازه بوجود آوردن کلید ) در مورد آدرس شما باید آدرس کلید مربوطه رو بدونkey root آن تایپ کنید و به صورت یک string در مورد اجازه بوجود آوردن که با یک مقدارFalse یا True مقداردهی میشود شما می توانید با set کردن آن به صورت True به آن اجازه بدهید تا یک کلید با آدرس که شما تایپک کردید بوجود بیاورد البته به شما یشنهاد می کنم که مقدار مربوط را همیشه False کنید چون شما می توانید با تابع CreateKey یک key بسازید پس بهتره که شما از تابع اپن کیOpenKey آدرس کلید مربوطه تان را لود کنید . سپس شما در این مرحله قادر هستید تا هر کاری انجام دهید مثلا می توانید : کلید بسازید ( منظورم کلید رجیستری است)یک رشته وارد سازید و یا یک عدد و یا یک زمان وارد سازید و یا یک رشته را فرا بخوانید و یا یک عدد را فرا بخوانید و یا کلیدی را از بین ببرید و یا کلیدی را تغییر مکان (MoveKey) کنید و تمامی اعمال که می خواهید را انجام دهید . برای مثال به کد زیر یک نگاه بیندازید این کد task manager (ctrl+Alt+Delete) را غیر فعال می کند: کد: var نام تابع (نام مقداری که باید از نو ثبت شود و یا با نویسی شود , مقدار) همچنین توابعی نیز برای خوندن یک مقدار و باز گرداندن یک مقدار ووجود دارد مثل ReadString که اکثرا داری یک نوع ساختمان می باشند برای مثال با استفاده از کد زیر می توانید مسیر کوکی ها را از رجیستری بخوانید : کد: var نام تابع (نام عبارتی که باید خوانده شود ) |