| الموضوع السابق | الموضوع التالي |
الغرض
كتابة معلومات في سجل النظام (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;
أعلى الصفحة
| الموضوع السابق | الموضوع التالي |