الموضوع السابق   الموضوع التالي 

كتابة معلومات بعيدة

Procedure: WriteRegString
Procedure: WriteRegInteger
Procedure: WriteRegFloat
Procedure: WriteRegBool
Procedure: WriteRegCurrency
Procedure: WriteRegDateTime
Procedure: WriteRegDate

الغرض
كتابة معلومات في سجل النظام (Windows Registry) في حاسوب آخر على الشبكة.


الصيغة

procedure WriteRegString(const RegSubKeyHandle: HKEY; const Name, Value: string);

procedure WriteRegInteger(const RegSubKeyHandle: HKEY; const Name: string; Value: Integer);

procedure WriteRegBool(const RegSubKeyHandle: HKEY; const Name: string; Value: Boolean);

procedure WriteRegFloat(const RegSubKeyHandle: HKEY; const Name: string; Value: Double);

procedure WriteRegCurrency(const RegSubKeyHandle: HKEY; const Name: string; Value: Currency);

procedure WriteRegDateTime(const RegSubKeyHandle: HKEY; const Name: string; Value: TDateTime);

procedure WriteRegDate(const RegSubKeyHandle: HKEY; const Name: string; Value: TDate);


الوسائط (Parameters)

RegSubKeyHandle مقبض المفتاح الفرعي الذي تقع تحته القيمة المطلوب كتابتها. هذا المقبض يجب أن يكون قد تم الحصول عليه سابقاً بالدالة OpenRemoteSubKey (انظر موضوع الوصول إلى معلومات بعيدة)
Name اسم القيمة المطلوب كتابتها
Value البيانات المطلوب كتابتها. نوع البارامتر Value يعتمد على نوع البيانات المطلوب كتابها (حسب اسم الإجراء).

الشرح
بعد استعمال الدالة ConnectToRemoteRegistry لتأسيس اتصال بأحد المفاتيح الأساسية في سجل نظام الحاسوب البعيد، و استعامل الدالة OpenRemoteSubKey لفتح المفتاح الفرعي الذي يحتوي على القيمة أو القيم التي تريد كتابتها، استعمل الإجراءات المذكورة أعلاه لكتابة القيم في سجل النظام لذلك الحاسوب. من الواضح أن اسم الإجراء يدل على نوع البيانات التي يستطيع كتابتها، فمثلاً الإجراء WriteRegString يستعمل لكتابة قيمة نصية (String)، و الإجراء WriteRegDate يستعمل لكتابة قيمة تاريخ (Date)، ... إلخ.

تبقى نقطة أخيرة و مهمة و هي أن أياً من الإجراءات المذكورة هنا، أو دوال الوصول إلى معلومات بعيدة أو دوال قراءة المعلومات البعيدة قد تفشل إذا كانت قيود الأمان المطبقة على سجل النظام في الحاسوب البعيد لا تسمح بمثل تلك العمليات.

مثال

const
   APP_REGISTRY_KEY = 'software\Daniyah Software Center\SchoolMoney0100SE';
   REG_SK_GENERAL = APP_REGISTRY_KEY + '\General';
var
   RegKeyHandle, RegSubKeyHandle: HKEY;
   SchoolYear: Integer;
   LastUser: string;
begin
   try
      if ConnectToRemoteRegistry('\\DANIYAH-CENTER',
            HKEY_CURRENT_USER, RegKeyHandle) then begin
         try
            if OpenRemoteSubKey(RegKeyHandle, REG_SK_GENERAL,
                  RegSubKeyHandle) then begin
               SchoolYear := ReadRegInteger(RegSubKeyHandle,
                  'SchoolYear');
               MsgBox(IntToStr(SchoolYear));
               LastUser := ReadRegString(RegSubKeyHandle,
                  'LastUser');
               MsgBox(LastUser);
               WriteRegString(RegSubKeyHandle, 'LastUser',
                  'ناجي إبراهيم');
               // Result3 := ReadRegXXX ....
               // ....
            end;
         finally
               CloseRemoteSubKey(RegSubKeyHandle);
            end;
         end;
      finally
         DisconnectRemoteRegistry(RegKeyHandle);
      end;
end;


 أعلى الصفحة
 الموضوع السابق   الموضوع التالي