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

عاشق التقنية

Well-known member
إنضم
22 مارس 2019
المشاركات
4,319
مستوى التفاعل
1,591
النقاط
113
الإقامة
مصر
الجنس
ذكر
الدرس الرابع عشر في دورة لغة البرمجة autoit, التحكم في مفاتيح سجل النظام
بسم الله الرحمن الرحيم:
وبهِ نستعين
والصلاةُ والسَلامُ على المَبعوثِ رحمةً للعالمين:
سيدنا وحبيبنا محمد: اللهم صَلِّي وسَلِّم وبارِك عليه وعلى آلهِ وصحبهي إلى يوم الدين.
المتابِعونَ والمتابِعات: مُحبي التقنية في كل مكان:
السلامُ عليكم ورحمةُ الّلَهِ وبركاته.
كيف حالكم جميعً؟ أتمنا أن تكونوا بخيرٍ من الله وبركة.
زوار وزائرات:
موقع ومنتديات شئون الكفيف العربي.
جئتُ لكم بموضوعٍ جديدٍ لهذا اليوم: وأتمنا أن تستفيدو منه : فهذه هي غايتنا.
ثُمَّ أما بعد.
الدرس الرابع عشر في دورة لغة البرمجة autoit, التحكم في مفاتيح سجل النظام
في هذا الدرس سنتعلم طريقة التحكم في سجل النظام باستخدام لغة البرمجة 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
ختاما إنتظروني قريبا في شرح جديد عن اللغة إن شاء الله, ومن هنا لذالك الحين أستودعكم الله الذي لا تغيب ودائعه.

منقول من أخونا العزيز ناصر بعزيز جزاهُ الله كل خير ونفع بهِ.
دمتم أحبتي بأمان الله وحفظه
محبكم في الله : أخوكم عاشق التقنية
والحمد لله رب العالمين
ختاما تقبلو تحياتي ولا تنسوني من خالص دعائكم
وسَلام الله عليكم ورحمته وبركاته
مع تحيات أخوكم عاشق التقنية.
 
عودة
أعلى