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

قراءة معلومات بعيدة

Function: ReadRegString
Function: ReadRegInteger
Function: ReadRegFloat
Function: ReadRegBool
Function: ReadRegCurrency
Function: ReadRegDateTime
Function: ReadRegDate

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


الصيغة

function ReadRegString(const RegSubKeyHandle: HKEY;
    const Name: string): string;

function ReadRegInteger(const RegSubKeyHandle: HKEY;
    const Name: string): Integer;

function ReadRegBool(const RegSubKeyHandle: HKEY;
    const Name: string): Boolean;

function ReadRegFloat(const RegSubKeyHandle: HKEY;
    const Name: string): Double;

function ReadRegCurrency(const RegSubKeyHandle: HKEY;
    const Name: string): Currency;

function ReadRegDateTime(const RegSubKeyHandle: HKEY;
    const Name: string): TDateTime;

function ReadRegDate(const RegSubKeyHandle: HKEY;
    const Name: string): TDate;


الوسائط (Parameters)

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

الشرح
بعد استعمال الدالة ConnectToRemoteRegistry لتأسيس اتصال بأحد المفاتيح الأساسية في سجل نظام الحاسوب البعيد، و استعامل الدالة OpenRemoteSubKey لفتح المفتاح الفرعي الذي يحتوي على القيمة أو القيم التي تريد قراءتها، استعمل الدوال المذكورة أعلاه لقراءة القيم من سجل النظام لذلك الحاسوب. من الواضح أن اسم الدالة يدل على نوع البيانات التي تستطيع فراءتها، فمثلاً الدالة ReadRegString تستعمل لقراءة قيمة نصية (String)، و الدالة ReadRegDate تستعمل لقراءة قيمة تاريخ (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;


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