اين تابع يک کليد رجيستري را باز مي کند تا بتوان با توابعي مثل RegSetValueEx و RegQueryValueEx و RegDeleteValue بتوان در آن نوشت ؛ از آن خواند يا آن را پاک کرد
اگر تابع کار خود را با موفقيت با پايان برساند مقدار صفر را بر مي گرداند در غير اينصورت يک مقدار غير صفر را که بيانگر شماره خطا است را بر مي گرداند که مي توان با تابع FormatMessageA توضيحات آن را به دست آورد
hKey : نام دستگيره اي که کليد مورد نظر در آن قرار دارد. ( از ثابت هاي مثال استفاده کنيد )
lpSubKey : مسير مورد نظر ( نام دستگيره اصلي را ننويسيد )
uOption : مقدار اين متغير را برابر صفر قرار دهيد
samDesired : مشخص مي کند پس از باز شدن تصميم به انجام چه نوع عملي روي تابع را داريد ( ثابت هاي زير )
KEY_ALL_ACCESS : دسترسي کامل به کليد مورد نظر
KEY_READ : فقط خواندني
KEY_WRITE : فقط نوشتني
phkRsult : اين بافر توسط تابع مقدار دهي مي شود و شامل يک اشاره گر خواهد بود که مي تواند مورد استفاده توابع ديگر واقع شود
کد PHP:
Const READ_CONTROL = &H20000
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL
Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003
Private Const HKEY_PERFORMANCE_DATA = &H80000004
Private Declare Function RegOpenKeyExA Lib "advapi32.dll" (ByVal hKey As Long,ByVal lpSubKey As String,ByVal ulOptions As Long,ByVal samDesired As Long,ByRef phkResult As Long) As Long