اين تابع يک کليد رجيستري را مي سازد
اگر تابع کار خود را با موفقيت با پايان برساند مقدار صفر را بر مي گرداند در غير اينصورت يک مقدار غير صفر را که بيانگر شماره خطا است را بر مي گرداند که مي توان با تابع FormatMessageA توضيحات آن را به دست آورد
hKey : نام دستگيره اي که کليد مورد نظر در آن قرار دارد. ( از ثابت هاي مثال استفاده کنيد )
lpSubValue : مسير مورد نظر ( نام دستگيره اصلي را ننويسيد )
Reserved : مقدار اين متغير صفر است
lpClass : مقدار اين آرگومان يک فضاي خالي است ( " " )
dwOptions : اگر مقدار اين متغير
samDesired : نحوه ثبت تغييرات در رجيستري را بيان مي کند
REG_OPTION_NON_VOLATILE : تغييرات را به طور دايم در رجيستري ثبت مي کند
REG_OPTION_VOLATILE : تغييرات را فقط در حافظه موقت ذخيره مي کند و پس از خاموش شدن دستگاه تغييرات از بين مي رود
lpSecurityAttributes : اين نوع را اينگونه مقدار دهي کنيد
lpAttr.nLength = 50
lpAttr.lpSecurityDescriptor = 0
lpAttr.bInheritHandle = True
phkResult : اين بافر توسط تابع مقدار دهي مي شود و شامل يک اشاره گر از کليد مربوطه است که مي تواند مورد استفاده توابع ديگر واقع شود
lpdwDisposition : اين بافر توسط تابع مقدار دهي مي شود و اگر پس از اجراي تابع مقدار آن يک باشد آنگاه کليد مذکور ساخته شده است و اگر مقدار آن دو باشد آنگاه کليد مذکور وجود داشته است و تابع فقط آن را باز کرده است
کد PHP:
Const REG_OPTION_NON_VOLATILE = 0
Const REG_OPTION_VOLATILE = 1
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 Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
Private Declare Function RegCreateKeyExA Lib "advapi32.dll" ( ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdw