ورود

نسخه کامل مشاهده نسخه کامل : درخواست آموزش درباره ی رجیستری



s.hidden
26-05-2009, 19:19
سلام.
میشه یکی در مورد کار با رجیستری یکم توضیح بده؟؟!
چجوری یه کلید بسازیم؟
چجوری یه کلید رو پاک کنیم؟
چجوری یه کلید رو ادیتش کنیم؟؟
TnX

s.hidden
26-05-2009, 20:15
سلام

به ادرس زیر رجوع کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید .

ببین این نوشته " خواندن,نوشتن و پاک کردن از رجیستری در #C "

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

mahdi7610
26-05-2009, 20:36
ببین این نوشته " خواندن,نوشتن و پاک کردن از رجیستری در #C "

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

معذرت میخوام . یه لحظه فکر کردم این تاپیک مربوط به انجمن .net هستش .

تازه داشتم اموزشش را هم اماده میکردم . که یه دفعه دیدم ویژوال بیسیک هستش :31:

دوستان ویژوال بیسیک انشاالله راهنماییتون میکنند .

موفق باشید.

mahdi7610
26-05-2009, 20:58
یه سری به ادرس زیر بزنید توضیح داده شده


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشی

s.hidden
27-05-2009, 00:12
صفحه یه هم ریختس...
اصلا نمیشه خوندش ولی همین که به فکرمونی دستت درد نکنه.

mahdi7610
27-05-2009, 12:21
رجيستري چيست ؟

سيستم عامل ويندوز تنظيمات سخت افزاري و نرم افزاري خود را بطور مرکزي در يک بانک اطلاعاتي با ساختار سلسله مراتبي ذخيره مي کند که رجيستري نام دارد . رجيستري جايگزيني براي بسياري از فايلهاي پيکربندي INI ، SYS و COM است که در نسخه هاي اوليه ويندوز موجود بود . رجيستري ، سيستم عامل را با مهيا کردن اطلاعات موردنيز براي اجراي برنامه ها و load شدن component ها ، کنترل مي کند .

رجيستري شامل انواع مختلفي از اطلاعات مي باشد مثل :

- اطلاعات سخت افزارهاي نصب شده روي سيستم
- اطلاعات درايورهاي نصب شده روي سيستم
- اطلاعات برنامه هاي نصب شده روي سيستم
- اطلاعات پروتکلهاي شبکه اي مورد استفاده در سيستم

ساختار رجيستري شامل چندين مجموعه رکورد است که داده هاي اين رکوردها توسط بسياري از برنامه ها و اجزاي سيستم عامل خوانده و يا نوشته مي شود .

اجزاي رجيستري

اجزاي تشکيل دهنده رجيستري عبارتند از :

1 – subtree : Subtree ها همانند folder هاي موجود در ريشه يک درايو هارد هستند . رجستری ويندوز داراي پنج subtree مي باشد :

- HKEY_LOCAL_MACHINE : شامل تمام داده هاي پيکربندي براي کامپيوتر مي باشد و شامل 5 key است :Hardware ، SAM ، Security ، Software و System

- HKEY_USERS : شامل داده هاي مربوط به تنظيمات سيستم عامل براي هر user است مثل تنظيمات desktop و محيط ويندوز

- HKEY_CURRENT_USER : شامل داده هاي کاربر فعلي سيستم

- HKEY_CLASSES_ROOT : شامل اطلاعات پيکربندي نرم افزار است مثل داده هاي OLE و داده هاي کلاسهاي متناظر با فايل

- HKEY_CURRENT_CONFIG : شامل اطلاعات مورد نياز براي تنظيمات داريورهاي سخت افزاري و غيره

2 – Key : key ها همانند folder ها و subfolder هاي روي هارد هستند . هر key متناظر با object هاي نرم افزاري يا سخت افزاري مي باشد . subkey ها key هايي هستند که درون يکسري key قراردارند .

3 – Entry : هر key داراي يک يا چند entry است . هر entry داراي سه بخش مي باشد :

- نام Name
- نوع داده اي Data Type : مقدار هر entry يکي از انواع داده هاي زير است :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- مقدار Value

نکته 1 : براي مشاهده رجيستري و اعمال تغييرات در آن ( لطفاً اگر هيچ تجربه اي در تنظيم کردن رجيستري نداريد اطلاعات آنرا تغيير ندهيد ) ، مي توانيد از برنامه regedit.exe و يا regedt32.exe موجود در ويندوز استفاده کنيد . براي اينکار کافيست نام برنامه را در کادر Run وارد کنيد .

براي کار با رجيستري در ويژوال بيسيک کلاس Registery.bas را مطابق مطالب زير ايجاد کرده و در پروژه هاي خود از آن استفاده کنيد :

1 - تعريف ثابتهاي مورد نياز : براي نوشتن اين کلاس نياز به تعريف چهار دسته ثابت داريم :

- ثابتهاي مربوط به تعريف data type هاي entry هاي رجيستري :

Global Const REG_SZ As Long = 1
Global Const REG_DWORD As Long = 4

- ثابتهاي مربوط به تعريف key هاي رجيستري


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- ثابتهاي مربوط به خطاهاي کار با رجيستري


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- ثابتهاي متفرقه


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


2 - Declare کردن Api هاي مورد نياز : براي کار با رجيستري از توابع کتابخانه Advapi32.dll استفاده مي کنيم . اين توابع عبارتند از :

- تابع RegCloseKey : آزاد کردن handle مربوط به يک key

Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

- تابع RegCreateKeyEx : ساخت يک key در رجيستري ( اگر key قبلاً وجود داشته باشد ، اين تابع آنرا باز مي کند ) :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع RegOpenKeyEx : باز کردن يک key


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تابع RegQueryValueExLong : استخراج type و data ي يک نام متناظر با يک key باز شده


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع RegSetValueEx : ذخيره يک مقدار در فيلد value يک کليد باز


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع RegDeleteKey : پاک کردن يک کليد و کليه اطلاعات مرتبط با آن


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع RegDeleteValue : حذف مقدار يک key


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

3 - توابع کمکي : براي نوشتن توابع اصلي کار با رجيستري نياز به نوشتن توابع کمکي زير است :
- تابع SetValueEx : با توجه به نوع داده يک کليد ، مقدار موجود در آنرا در يک متغير ذخيره مي کند :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع QueryValueEx : سايز و نوع داده اي يک داده را که بايد خوانده شود مشخص مي کند .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

4 - توابع اصلي : توابع مربوط به پاک کردن يک کليد از رجيستري ، ساخت يک کليد جديد در رجيستري و مقداردهي به يک کليد :

- تابع DeleteKey : اين تابع يک کليد از رجيستري را حذف مي کند . داراي دو پارامتر ورودي است :

Location که يکي از مقادير HKEY_CLASSES_ROOT ، HKEY_CURRENT_USER
، HKEY_LOCAL_MACHINE و يا HKEY_USERS است .

KeyName که نام کليدي است که بايد از رجيستري حذف شود . اين کليد ممکنست شامل subkey هايي نيز باشد مثلاً Key1\SubKey1


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع DeleteValue : اين تابع يک entry را از کليد حذف مي کند . داراي سه پارامتر ورودي است : Location ، KeyName و ValueName که نام آن value را مشخص مي کند .



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع CreateNewKey : اين تابع يک کليد جديد ايجاد مي کند . داراي دو پارامتر ورودي است : Location و KeyName


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع SetKeyValue : اين تابع پارامتر data يک entry را تنظيم مي کند . داراي 5 پارامتر ورودي است : Location ، KeyName ، ValueName ، ValueSetting و ValueType


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

- تابع QueryValue : اين تابع فيلد داده يک entry را برمي گرداند . داراي سه پارامتر ورودي است : Location ، KeyName و ValueName


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ساخت يک انتصاب فايل يا File Association به يک برنامه
در اين درس می خواهم با استفاده از کلاسی که در درس قبل معرفی شد تابعی بسازيم که توسط آن بتوانيم فايلهای با پسوندی مشخص را به يک برنامه اختصاص دهيم . بعبارت ديگر تابعی بنويسيم که اطلاعات لازم برای باز شدن فايلهايی با پسوند xxx را توسط برنامه MyApp.exe در رجيستری ثبت کند .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کاربرد اين تابع بصورت زير است :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اجرا شدن يک برنامه در هنگام راه اندازی سيستم
فرض کنيد می خواهيم برنامه ای بنويسيم که هر بار در هنگام راه اندازي سيستم بطور خودكار اجرا شود. البته نمي خواهم در startup ويندوز ديده شود .
براي اين كار بايد برنامه موردنظر را در StartUp رجيستري قرار دهيم . به اين ترتيب كه در يكي از كليدهاي زير يك مقدار رشته اي جديد(String Value) ايجاد کنيم و آدرس برنامه را در آن وارد كنيم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

براي مثال اگه اسم برنامه مورد نظر MyApp و مسيرش C:\Windows\MyApp.exe است بايد بصورت زير عمل کرد :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

نکته : البته دو تا راه ديگر برای اينکار وجود دارد که برخی تروجان ها هم از اين روشها استفاده می کنند تا روی سيستم باقی بمانند :
يكي استفاده از win.ini و نوشتن نام فايل جلوي = run و ديگري استفاده از system.ini و نوشتن نام برنامه جلوي خط explorer.exe .