توابع API مربوط به رجیستری

1)           RegCreateKey(HKEY_LOCAL_MACHINE,Pstr1,MKey);

2)           RegOpenKey  (HKEY_LOCAL_MACHINE,Pstr1,MKey);

3)           RegCloseKey(Mkey);

4)           RegSetValue (MKey,Pstr1,REG_SZ,Pstr2,L);

5)           RegQueryValue(MKey,Pstr1,Pstr2,L);

6)           RegEnumKey   (MKey,Index,Pstr1,L);

7)           RegEnumValue (MKey,Index,Pstr1,L1,0,0,0,0);


توضیحات در مورد دستورات فوق

1-                این تابع کلید یا مسیرمشخص شده در پارامتر ورودی (Pstr1) را باز میکند و هندل آن را در متغییر MKey  قرار میدهد . سایر توابع قبل از هر کاری باید این تابع را فراخوانی کنند. عملکرد این تابع مانند open file است.

2-                این تابع یک کلید مشخص شده در (Pstr1) را ایجاد میکند اگر این کلید وجود داشته باشد آنرا باز میکند و هندل آن را در متغییر MKey  قرار میدهد .

3-                جهت بستن یک کلید در رجیستری می باشد.

4-                جهت مقداردهی مقداریک زیر کلید از مسیر باز شده  به کار می رود. هندل آن مسیربا تابع  RegOpenKey    در متغییر  Mkey  می باشد .

5-                جهت  خواندن مقدار  کلید باز شده   (Mkey)  به کار می رود.

6-                این تابع جهت پیمایش  نام زیر کلیدهای یک کلید باز و مشخص شده در (Mkey) می باشند. درهر بار فراخوانی تابع تنها اطلاعات یک زیر کلید را بر می گرداند. بنابراین باید در یک حلقه قرار بگیرد و در این حاقه متغییر  Index  در هر بار یکی اضافه شود .

7-                این تابع جهت پیمایش زیر کلیدهای یک کلید باز و مشخص شده در پارامتر ورودی می باشند. درهر بار فراخوانی تابع تنها اطلاعات یک زیر کلید را بر می گرداند.

سیستم  پیغام در ویندوز

همانطور که اشاره شد سیستم عامل ویندوز برای هماهنگی پنجره ها و انتقال ورودی / خروجی ها به برنامه ها از پیغام (  Message) استفاده می کند. هر برنامه دارای یک تابع پاسخگو به پیغام  windows procedure))  میباشد لذا  سیستم عامل در هر زمانی که پیغام به برنامه ارسال نماید این زیر برنامه اجرا شده و پیغام مورد  نظر را دریافت و در صورت مربوط بودن پیغام به آن یکevent ( رخداد) را فعال می کند.

انواع پیغام ها در ویندوز:

الف) پیغام های از پیش  تعریف شده در سیستم

ب) ) پیغام های تعریف شده توسط کاربر

 

الف) پیغام های سیستم جهت کنترل عملیات برنامه و ایجاد ورودی مورد نیاز آن و دیگر اطلاعاتی که برنامه باید پردازش کند استفاده می شود.  یک برنامه می تواند پیغام های سیستم را ارسال یا پست کند و  پیغام های سیستم یک مشخصه منحصر به فرد یا یک ثابت تعریف شده می باشند و هدف پیغام را تعریف  می کند مانند  WM_QUIT و یا WM_MOUSEMOVE .  به منظور دسته بندی انواع پیغام ها هریک از ثابت ها با یک پیشوند شروع می شوند  مثلWM_  برای پیغام های مربوط به پنجره  BM_ پیغام مربوط  به button و CB_ برایComboBox  میبا شد

ب) برنامه های کاربرمی توانند پیغام را برای استفاده در پنجره خود ارسال نمایند . همچنین می توانند پیغام را برای استفاده در پنجره دیگر برنامه ها تولید و ارسال نمایند و برای پاسخگویی به این نوع پیغام ها باید زیر برنامه پاسخگویی پیغام قادر به تشخیص پیغام باشد برای ایجاد مشخصه یک پیغام نکات زیر توجه شود :

1- هر پیغام یک مقدارinteger(دو بایتی) می باشد. 

2- مشخصه پیغام های سیستم از شماره 0x0000 تا 0x03FF می باشد.لذا پیغام ها ی  مربوط به کاربر و برنامه نباید در این بازه قرار بگیرد.

3- مشخصه های مربوط به کاربر می تواند از شماره0x0400 تا 0x7FFF باشد.

 

برای بدست آوردن مشخصه یک پیغام می توان از تابعregister windows message  استفاده کرد.

  صف برنامه ها  یا توسط صف سیستم و یا توسط تابع  PostMessage() پر میشوند بنابراین هر یک از برنامه ها برای ارتباط با هم با استفاده از تابع PostMessage() پیغام خود را در صف برنامه مورد نظر قرار دهد.

 ارسال پیغام ها به صف بر نامه ها  توسط سیستم عامل به دو روش زیر صورت میگیرد

1-پست کردن پیغام ها به صف fifo

2- پیغام را مستقیما به زیر برنامه پاسخگوی پنجره ارسال می کند

پیغام های روش اول را پیغام ها ی صفی  و روش دوم را غیر صفی می نامند . پیعامهای صفی مانند WM_MouseDwon , WM_KeyDown , Wm_Quit   و غیر صفی مانند  Wm_SetFocus , Wm_Active