في هذا الدرس سنتعلم طريقة التحكم في سجل النظام باستخدام لغة البرمجة autoit

الدرس الرابع عشر في دورة لغة البرمجة autoit, التحكم في مفاتيح سجل النظام

بسم الله الرحمن الرحيم والصلاة والسلام على لأشرف الأنبياء والمرسلين
أما بعد فأيها الأحبة أهلا وسهلا ومرحبا بكم

ها قد عدنا لكم لإكمال مشوارنا الذي بدأناه, حيث سنواصل قليلا في دورة تعلم لغة autoit, إذ في يومنا هذا إن شاء الله سنواصل من حيث توقفنا.
في الدرس الرابع عشر سنتناول الدوال المختلفة التي تساعدنا في التحكم في مفاتيح سجل النظام
إذ سنتعلم طريقة قراءة قيمة مفتاح, طريقة إضافة مفتاح وتعديله, طريقة حذف مفتاح… إلخ
طبعا الدورة كلها موجودة بروابط ثابتة يمكنكم العودة إليها سواءا من منتديات شؤون الكفيف العربي أو من خلال قسمها الخاص في موقع فضاء المعرفة

ما هي سجلات النظام

إن نظام ويندوز مرفق بسجل نظامي يحتوي على مفاتيح وقيم وأقسام, إذ يمكننا من التحكم في أقسام نظام التشغيل المختلفة, كما يمكننا من خلاله التحكم في البرامج المثبتة, والبدأ التلقائي وغير ذالك الكثير.
حيث تعتبر المفاتيح ذات نوع واحد, أما القيم فهي التي تختلف أنواعها حسب الهدف منها
فهنالك
قيم نصية (string value)
قيم رمزية (binary value)
قيم رقمية : (dword Value)
…وغيرها حيث سنتطرق إليها مع الدوال

ما هي الدوال التي سنتعرف عليها في هذا الدرس

دالة RegRead
لقراءة القيم
دالة RegWrite
لإضافة وتعديل المفاتيح أو القيم
دالة RegDelete
لحذف المفاتيح أو القيم

تفصيل في الدوال

RegRead

تستخدم هذه الدالة من أجل قراءة قيمة لمفتاح معين في سجل النظام
حيث شكل الدالة يكون
RegRead(“المفتاح”, “اسم القيمة”)
حيث المفتاح يمثل مسار المفتاح في سجل النظام
ويكون كالتالي
القسم\الفرعالأول\الفرع م\المفتاح
مثلا
HKEY_CURRENT_USER\SOFTWARE\nacerBaaziz
أو
HKEY_CURRENT_USER\SOFTWARE\nacerBaaziz\Windows_Manager\HotKeys

حيث HKEY_CURRENT_USER يمثل القسم الرئيسي في السجل
والباقي المسار

إليك مجموعة من العبارات يمكنك إستبدال بها أسماء الأقسام الرئيسية كي يكون المسار أصغر
طبعا يمكنكم استخدام العبارات الرئيسية
HKCU
تمثل
HKEY_CURRENT_USER

HKLM
تمثل
HKEY_LOCAL_MACHINE

HKU
تمثل
HKEY_USERS

HKCR
تمثل
HKEY_CLASSES_ROOT

HKCC
تمثل
HKEY_CURRENT_CONFIG

ملاحظة:
في حال كنت تستخدم نظام 64 وأردت أن يضعها في المسار الخاص بالنظام يمكنك إضافة عبارة 64 في آخر القسم مثلا

HKLM64
أو
HKEY_LOCAL_MACHINE64

أما الإعداد الثاني للدالة
فنكتب فيه إسم القيمة التي نريد الحصول عليها

ملاحظة :
ترك إسم القيمة عبارة عن تنصيصين فارغين “” يعني أنك تريد الحصول على القيمة الإفتراضيةى (default)

مثال
سوف نتحصل على مسار مجلد تثبيت البرامج الخاص بنسخة windows الحالية


$path = RegRead(“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion”, “ProgramFilesDir”)
MSGBox(64, “program files”, $path)

نتائج الدالة

عند نجاح العملية ستكون النتيجة هي القيمة التي نبحث عنها
أما عند الفشل فالنتيجة ستكن فارغة
ورمز الخطأ سيكن واحد من الأرقام التالية
1 = لا يمكن فتح المفتاح المراد
2 = لا يمكن فتح المفتاح الرئيسي
3 = لا يمكن الإتصال عن بعد بالسجل
-1 = تعذر فتح القيمة المطلوبة
-2 = نوع القيمة غير مدعوم

RegWrite

إذ تستخدم هذه الدالة من أجل إضافة مفتاح أو قيمة, كما تستخدم لإنشاء أو تعديل قيمة محددة
وشكل المفتاح يكون
RegWrite(“المسار”, “إسم القيمة”, “نوع القيمة”, “المحتوى”)
حيث المسار يمثل مسار مثتاح السجل مثلما رأينا أعلاه, بينما إسم القيمة فهو الإسم الذي سيحمل المحتوى الذي نريد إضافته أو تعديله في السجل.
أما نوع القيمة فهو أحد الأنواع التالية, حيث كل نوع يحمل قيمة معينة
Reg_sz
هذا النوع يقبل القيم النصية
reg_dword
هذا النوع يحمل القيم الرقمية وغالبا تكن 1 أو 0
REG_MULTI_SZ
هذا النوع يحمل قيم متعددة حيث يتم الفصل بين قيمة وقيمة بسطر جديد أو @lf
REG_BINARY
هذا النوع يحمل القيم المشفرة بطريقة BINARY

وبخصوص المحتوى فهو ما نريد كتابته في السجل
حيث المحتوى يكون حسب نوع القيمة المعلنة.

نتائج الدالة :
عند نجاح العملية تكون النتيجة 1
وعند الفشل تكن النتيجة 0 مع رمز الخطأ
1 = لا يمكن فتح المفتاح المراد
2 = لا يمكن فتح المفتاح الرئيسي
3 = لا يمكن الإتصال عن بعد بالسجل
-1 = تعذر فتح القيمة المطلوبة
-2 = نوع القيمة غير مدعوم

مثال عن الدالة :

هذا المثال سيقوم بتسجيل برنامج notepad ليفتح مع بداية تشغيل الجهاز

regWrite(“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, “notepad”, “reg_sz”, “c:\windows\notepad.exe”)

حيث هذا المثال سيقوم بإضافة البرنامج الشهير المفكرة كي يفتح مع بداية التشغيل
وقد إخترت نوع القيمة ليكن reg_sz لأن المسار عبارة عن نص.

دالة regDelete

تستخدم هذه الدالة من أجل حذف مفتاح أو قيمة من السجل
حيث شكل الدالة يكون
RegDelete(“المسار”, “إسم القيمة اختياري”)
حيث المسار يحدد مسار المفتاح الذي نريد حذفه
وإذا أدخلنا إسم قيمة فسيقوم بحذف القيمة بدل من المفتاح بأكمله

نتائج الدالة :
هذه الدالة إستثنائية, حيث هي ترجع 1 في حال نجحت العملية
أو 0 في حال المفتاح غير موجود
أو تقوم بإرجاع 2 مع رمز الخطأ في حال فشل العملية
1 = لا يمكن فتح المفتاح المراد
2 = لا يمكن فتح المفتاح الرئيسي
3 = لا يمكن الإتصال عن بعد بالسجل
-1 = تعذر فتح القيمة المطلوبة
-2 = نوع القيمة غير مدعوم

مثال على الدالة :
سوف نضع كمثال حذف المفتاح الذي أضفناه سابقا لتشغيل المفكرة

RegDelete(“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, “notepad”)

هنا لو حذفنا مثلا , “notepad” من السطر
فسيقوم بحذف المفتاح المسمى run وبالتالي ستتعطل جميع البرامج التي تعتمد عليه في التشغيل التلقائي.

مثال شامل عن الدوال
هنا سأكتب لكم مثال شامل في الدوال التي تعرفنا عليها
حيث سأقوم بإضافة مفتاح تشغيل لبرنامج المفكرة إذا لم يكن موجود, وفي حال كان موجود سأقوم بحذفه


if RegRead(“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, “notepad”) = “c:\notepad.exe” then
RegDelete(“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, “notepad”)
else
regWrite(“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”, “notepad”, “reg_sz”, “c:\windows\notepad.exe”)
endIf

هذا كما هنالك العديد من الدوال الأخرى حيث يمكنكم التحكم أكثر في السجل
يمكنكم فقط التوجه إلى ملفات المساعدة المرفقة مع اللغة وستجدون أمثلة كافية عنهم
كل أمثلة السجل تبدأ ب عبارة reg

ختاما إنتظروني قريبا في شرح جديد عن اللغة إن شاء الله, ومن هنا لذالك الحين أستودعكم الله الذي لا تغيب ودائعه.

عن ناصر بعزيز

شاب من الجزائر, مهتم بالأمور التقنية وشغوف بالبحث والتعلم. يشرفني التواصل معكم, وأنا في الخدمة لأي مساعدة. للتواصل معي يرجى استخدام وسائل الإتصال المتاحة أعلى الموقع.

شاهد أيضاً

الدرس العاشر في دورة autoit – دوال التحكم في النوافذ

بسم الله الرحمان الرحيم; والصلاة والسلام على أشرف الخلق والمرسلين. أما بعد فأيها الأحباب, أيها …

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *