PDA

نسخه کامل مشاهده نسخه کامل : آموزش كامل رجيستري



Soheilvb
15-06-2006, 17:27
سلام اينم آموزش رجيستري
توابع API براي كار با رجيستري عبارتند از :


RegOpenKeyex


RegCreateKey


RegCreateKeyex


RegCloseKey


RegSetValueexLong


RegSetValueexString


RegDeleteValue


‌RegDeleteKey


RegQueryValueexLong


RegQueryValueexString


RegEnumKeyex


RegEnumValue


RegRestoreKey


RegSaveKey


RegNotifyChangeKeyValue


CoCreateGuid


اين توابع تقريبا تمام توابعي هستند كه براي رجيستري وجود دارند حالا من كليه اين مطالب را توضيح مي دهم.


اگر با رجيستري كار كرده باشيد مي دانيد كه پنج كليد اصلي با نام هاي


HKEY_CURRENT_USER ,HKEY_LOCAL_MACHINE , HKEY_CLASSES_ROOT,HKEY_USERS,HKEY_CURRENT_CONFIG


را شامل مي شود.كه اين پنج كليد ثابت هاي به صورت زير دارند.


Const HKEY_CLASSES_ROOT = &H80000000


Const HKEY_CURRENT_USER = &H80000001


Const HKEY_LOCAL_MACHINE = &H80000002


Const HKEY_USERS = &H80000003


Const HKEY_CURRENT_CONFIG = &H80000005


يعني در توابع براي رجيستري شما براي باز كردن كليدي در اين پنج شاخه اصلي بايد از اين ثابت ها استفاده كنيد.


در ويژال بيسيك شما براي كار با يك مقدار يا كليد بايد آن كليد را ابتدا باز كنيد و يك اشاره گر از آن تهيه كنيد كه مورد استفاده توابع ديگر قرار مي گيرد و مي توانيد آن ها را ويرايش كنيد.


RegOpenKeyex


اين تابع يك كليد را در رجيستري با قابليت هاي مختلف و اختياري باز مي كند و يك اشاره گر از آن بر مي گرداند كه اين اشاره گر مورد استفاده توابع ديگر قرار مي گيرد.


اگر اين تابع با موفقيت كليد را باز كند مقدار برگشتي تابع برابر صفر و در غير اين صورت تابع يك كد Error و غير صفر مي دهد.


Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long


پارامترها:


Hkey : مقدار اين متغير را بايد يكي از كليدهاي اصلي باشد كه آن ها را در بالا گفتيم.


Lsubkey : مقدار اين متغير بقيه كليد هايي است كه بايد در زيركليد مادر باز شوند.براي مثال


"Software\Microsoft\Windows\CurrentVersion\Run"


UlOptions : مقدار اين متغير را صفر قرار دهيد.


SamDesired : مقدار اين متغير مشخص مي كند كه تابع كليد را با چه امكاناتي باز كند.كه مي تواند يك يا تركيبي از مقادير (Key_Read,Key_Write,Key_Execute,…) باشد ولي براي اينكه كار راحتتر باشد و در مواقع مختلف دچار اشتباه نشويد از مقدار


Const KEY_ALL_ACCESS = &H3F


استفاده كنيد تا كليد را براي همه تغييرات باز كنيد.


PhkResult : مقدار اين متغير همان اشاره گري است كه از كليد باز شده بر مي گردد و مورد استفاده توابع ديگر قرار مي گيرد.


مثال:


Dim Result as Long


RegOpenKeyex HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Run",0,KEY_ALL_ACCESS,a


كه در دستور بالا كليد مورد نظر را باز كرده و يك اشاره گر از آن را در a ذخيره مي كند.






RegCreateKeyEx


اين تابع يك يا چند كليد در رجيستري مي سازد و اگر كليد وجود داشته باشد آن را باز مي كند و در هر دو حالت يك اشاره گر برمي گرداند(از كليد ساخته شده يا وجود داشته) كه مورد استفاده توابع ديگر قرار مي گيرد.


اگر اين تابع با موفقيت كليد را باز كند مقدار برگشتي تابع برابر صفر و در غير اين صورت تابع يك كد Error و غير صفر مي دهد.


Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As long, phkResult As Long, lpdwDisposition As Long) As Long


hkey : مقدار اين متغير را بايد يكي از كليدهاي اصلي باشد كه آن ها را در بالا گفتيم.


Lsubkey : مقدار اين متغير آدرس بقيه كليد هايي است كه بايد در زيركليد مادر ساخته مي شوندو يا باز مي شوند . براي مثال :


"Software\Microsoft\Soheil\gh"


كه كليدهاي Soheil و gh را به ترتيب مي سازد.


Reserved : مقدار اين متغير صفر مي باشد.(0&)


Lpclass : مقدار اين متغير يك رشته خالي است ( vbNullString‌)


dwOption : اگر مقدار اين متغير صفر باشد تغييرات در رجيستري به طور دائمي ثبت مي شود ولي اگر مقدار يك باشد تغييرات تا زماني اعمال مي شوند كه سيستم روشن است و با خاموش كردن تنظيمات از بين مي روند.


SamDesired : مقدار اين متغير مشخص مي كند كه تابع چه توانايي را بر روي رجيستري دارد . كه مي تواند يك يا تركيبي از مقادير (Key_Read,Key_Write,Key_Execute,…) باشد ولي براي اينكه كار راحتتر باشد و در مواقع مختلف دچار اشتباه نشويد از مقدار


Const KEY_ALL_ACCESS = &H3F


استفاده كنيد تا كليد را براي همه تغييرات باز كنيد.


lpSecurityAttributes : مقدار اين متغير را صفر قرار دهيد . (0&)


PhkResult : مقدار اين متغير يك اشاره گر از كليد ساخته شده يا باز شده مي باشد كه اين اشاره گر مورد استفاده توابع ديگر قرار مي گيرد.


LpdwDisPosition : مقدار اين متغير توسط تابع مقدار دهي مي شود به اين صورت كه اگر مقدار يك در آن باشد به اين معني است كه تابع كليد جديد ساخته است و اگر مقدارش دو باشد يعني كليد وجود داشته است و فقط آن توسط تابع باز شده است.


براي مثال:


Dim lRetVal As Long


Dim hNewKey As String


lRetVal = RegCreateKeyEx(HKEY_CURRENT_USER, "Control Panel\Soheil", 0&, vbNullString, 0&, KEY_ALL_ACCESS, 0&, hNewKey, lRetVal)


با اين دستور كليد Soheil در زير كليد Control Panel ساخته مي شود.


RegCloseKey


پس از باز كردن كليد در رجيستري در آخر آن را بايد بست تا در رجيستري نظم باشد.


اين تابع كليد باز شده را در رجيستري مي بندد يعني اشاره گر ايجاد شده توسط توابع RegOpenKeyex و RegCreateKeyex و .... را از بين مي رود.


اگر اين تابع با موفقيت كليد را باز كند مقدار برگشتي تابع برابر صفر و در غير اين صورت تابع يك كد Error و غير صفر مي دهد.


Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long


پارامتر:


hKey : در اين پارامتر اشاره گري از كليد باز شده را بايد قرار دهيد تا بسته شود و آن اشاره گر را از بين ببرد.


(اين تابع را بايد در آخر دستورات قرار داده و اشاره گري را كه با آن كار كرديد را از بين ببريد)


RegSetValueExLong


اين تابع يك مقدار را براي يك دستور در رجيستري تنظيم مي كند كه مقدار آن نمي تواند رشته باشد بلكه فقط مي تواند از نوع Long باشد و اگر فايل وجود نداشته باشد آن را با توجه به نوع مي سازد.


اگر اين تابع با موفقيت كليد را باز كند مقدار برگشتي تابع برابر صفر و در غير اين صورت تابع يك كد Error و غير صفر مي دهد.


Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long


پارامترها:


hkey : اشاره گري است كه توسط توابع گفته شده از يك كليد گرفته ايم.


LpValueName : نام دستوري مي باشد كه بايد مقدار دهي شود و اگر مقدار اين متغير رشته خالي باشد ("") مقدار به دستور default كه در هر كليد وجود دارد ، نسبت داده مي شود.توجه داشته باشيد كه دستور default از نوع Reg_Sz است.


Reserved :‌ مقدار اين متغير Byval 0& قرار دهيد.


dwType : نوع دستور را مشخص مي كند . در رجيستري دستورها به 4 نوع تقسيم مي شوند.


Reg_Sz : مربوط به دستورات رشته اي است.


Reg_Dword :‌يك عدد از نوع Integer و 32 بيتي است.


Reg_Binary : نوع باينري


Reg_Expand_Sz : همانند نوع رشته اي است با اين تفاوت كه يك متغير در آن است براي مثال به مقدار زير را ببنيد.


%ProgramFiles%\soheil


اين نوشته به دايركتوري Soheil در Program Files اشاره مي كند. به طور كلي اگر يك نوشته بين دو تا % قرار گيرد . ويندوز آن را مقداري كه براي آن در نظر گرفته است قرار مي دهد.


ثابت هاي اين كليدها به صورت زير است:


Const REG_SZ As Long = 1


Const REG_DWORD As Long = 4


Const REG_BINARY = 3


Const REG_EXPAND_SZ = 2


LpData : مقداري مي باشد كه مي خواهيد به دستور داده شود.(در اين تابع اين متغير از نوع long تعريف شده است و بنابراين فقط مي توان مقدار long را در آن قرار داد در تابع بعد در مورد رشته توضيح مي دهم)


CbData : طول متغير LpData مي باشد.


RegSetValueExString


اين تابع يك مقدار را براي يك دستور در رجيستري تنظيم مي كند كه مقدار آن فقط مي تواند از نوع String باشد و اگر فايل وجود نداشته باشد آن را با توجه به نوع مي سازد.يعني براي اينكه در يك مقدار يك رشته قرار بدهيد از اين تابع و براي اينكه عدد قرار بدهيد از تابع بالا بايد استفاده كنيد.


Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long


پارامترها:


hkey : اشاره گري است كه توسط توابع گفته شده از يك كليد گرفته ايم.


LpValueName : نام دستوري مي باشد كه بايد مقدار دهي شود و اگر مقدار اين متغير رشته خالي باشد ("") مقدار به دستور default كه در هر كليد وجود دارد ، نسبت داده مي شود.توجه داشته باشيد كه دستور default از نوع Reg_Sz است.


Reserved :‌ مقدار اين متغير Byval 0& قرار دهيد.


dwType : نوع دستور را مشخص مي كند . در رجيستري دستورها به 4 نوع تقسيم مي شوند.


Reg_Sz : مربوط به دستورات رشته اي است.


Reg_Dword :‌يك عدد از نوع Integer و 32 بيتي است.


Reg_Binary : نوع باينري


Reg_Expand_Sz : همانند نوع رشته اي است با اين تفاوت كه يك متغير در آن است براي مثال به مقدار زير را ببنيد.


%ProgramFiles%\soheil


اين نوشته به دايركتوري Soheil در Program Files اشاره مي كند. به طور كلي اگر يك نوشته بين دو تا % قرار گيرد . ويندوز آن را مقداري كه براي آن در نظر گرفته است قرار مي دهد.


ثابت هاي اين كليدها به صورت زير است:


Const REG_SZ As Long = 1


Const REG_DWORD As Long = 4


Const REG_BINARY = 3


Const REG_EXPAND_SZ = 2


LpData : مقداري مي باشد كه مي خواهيد به دستور داده شود.(در اين تابع اين متغير از نوع String تعريف شده است و بنابراين فقط مي توان مقدار String را در آن قرار داد)


CbData : طول متغير LpData مي باشد.


توجه : تنها تفاوت اين تابع با تابع بالايي در تعريف LpData در تابع است.


تا اينجا اميدوارم كه مفيد بوده باشد حالا به مثال زير توجه كنيد:


مانند:


Dim H As Long


RegOpenKeyEx HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies \System", 0&, KEY_ALL_ACCESS, H


RegSetValueExLong H, "DisableTaskMgr", 0&, REG_DWORD, 1, 4


RegCloseKey H






اين دستورات باعث مي شود كه سه كليد Ctrl_Alt_Del غير فعال مي شود.


RegDeleteValue


اين تابع يك دستوري را از يك كليد پاك مي كند.


اگر اين تابع با موفقيت كليد را باز كند مقدار برگشتي تابع برابر صفر و در غير اين صورت تابع يك كد Error و غير صفر مي دهد.


Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long


پارامترها:


hKey : مقدار اين متغير يك اشاره گر از كليد (باز شده) مي باشد كه توسط توابع RegOpenKeyex , RegCreateKeyex بدست مي آيد.


lpValueName : مقدار اين متغير ، نام دستوري مي باشد كه بايد پاك شود.


Dim H As Long


RegOpenKeyEx HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies \System", 0&, KEY_ALL_ACCESS, H


RegDeleteValue H, "DisableTaskMgr"


RegCloseKey H


اين دستور باعث مي شود كه سه كليد Ctrl_Alt_Del كه غير فعال هستند فعال شوند.


RegDeleteKey


اين تابع يك كليد را در رجيستري پاك مي كند.


اگر اين تابع با موفقيت كليد را باز كند مقدار برگشتي تابع برابر صفر و در غير اين صورت تابع يك كد Error و غير صفر مي دهد.


Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long


پارامترها:


hkey : اين مقدار را بايد يكي از كليدهاي مادر قرار دهيد براي مثال HKEY_LOCAL_MACHINE


lpSubKey : مقدار اين آدرس كليد در رجيستري است كه بايد پاك شود.براي مثال


"Software\Microsoft\Windows\CurrentVersion\Policies \System"


كه كليد System, را پاك مي كند.


توجه : در ويندوزهاي 98,95,Me اگر زير كليد ديگري در كليد داده شده براي پاك كردن وجود داشته باشد آن ها را هم پاك مي كند يعني به عبارت ديگر يك كليد را با تمام زير كليد هاي آن پاك مي كند.ولي در ويندوزهاي XP,NT,2000 اگر در آن كليد كليد ديگري باشد آن كليد مورد نظر را پاك نمي كند يعني كارش را انجام نمي دهد.(من تابعي براي اينكه تمام زير كليدها را هم پاك كند نوشتم كه در قسمت هاي بعدي معرفي مي كنم.)


مثال:


RegDeleteKey HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies \System"


RegQueryValueExLong


اين تابع مقدار و نوع يك دستور داده شده در كليدي در رجيستري را برمي گرداند.كه دستور بايد از نوع عددي يعني Reg_Dword يا Reg_Binary باشد.


اگر اين تابع با موفقيت كليد را باز كند مقدار برگشتي تابع برابر صفر و در غير اين صورت تابع يك كد Error و غير صفر مي دهد.


Declare Function RegQueryValueExLong Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Long, lpcbData As Long) As Long


پارامترها:


hKey : اين متغير يك اشاره گر از كليد (باز شده) مي باشد كه توسط توابع RegOpenKeyex , RegCreateKeyex بدست مي آيد.


lpValueName: نام دستوري مي باشد كه بايد مقدار آن توسط تابع گرفته شود.


Reserved : مقدار اين متغير را صفر قرار دهيد.


lpType : نوع دستور توسط تابع در اين مقدار گذاشته مي شود كه مي تواند يكي از مقادير Reg_Dword,Reg_Sz,Reg_Expand_sz,,Reg_Binary باشد.


lpData : بافرمي مي باشد كه مقدار دستور توسط تابع در اين متغير قرار داده مي شود.توجه كنيد كه طول اين متغير بايد به قدر كافي باشد.تنها تفاوت اين تابع با تابع بعدي اين است كه در تابع بعدي اين متغير از نوع رشته اي (String) تعريف شده است.


lpcbData :‌مقدار بايتي مي باشد كه در بافر نوشته شده است.


مثال:به مثال تابع بعدي توجه كنيد.


RegQueryValueExString


اين تابع مقدار و نوع يك دستور داده شده در كليدي در رجيستري را برمي گرداند.كه دستور بايد از نوع عددي يعني Reg_SZ يا Reg_Expand_SZ باشد.


اگر اين تابع با موفقيت كليد را باز كند مقدار برگشتي تابع برابر صفر و در غير اين صورت تابع يك كد Error و غير صفر مي دهد.


Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long


پارامترها:


Hkey : يك اشاره گر از كليد باز شده است كه توسط توابع RegOpenKeyex و RegCreateKeyex به دست مي آيد.


lpValueName : نام دستور مورد نظر مي باشد كه مي خواهيم محتواي آن را بخوانيم.


lpReserved : مقدار اين پارامتر را صفر قرار دهيد.


lpType : نوع دستور توسط تابع در اين مقدار گذاشته مي شود كه مي تواند يكي از مقادير Reg_Dword,Reg_Sz,Reg_Expand_sz,,Reg_Binary باشد.


lpData : بافرمي مي باشد كه مقدار دستور توسط تابع در اين متغير قرار داده مي شود.توجه كنيد كه طول اين متغير بايد به قدر كافي باشد.تنها تفاوت اين تابع با تابع قبلي اين است كه در تابع قبلي اين متغير از نوع عددي (Long) تعريف شده است.


lpcbData :‌مقدار بايتي مي باشد كه در بافر نوشته شده است.


مثال:


يك CommandButton به فرم اضافه كنيد و كد زير را بنويسيد:


Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long


Private Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.


Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long


Private Const KEY_ALL_ACCESS = &H3F


Private Const HKEY_LOCAL_MACHINE = &H80000002


Private Sub Command1_Click()


Dim hKey As Long


Dim St As String


Dim Types As Long


Dim a As Long


St = String(255, Chr(0))


a = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\ComputerName\Acti veComputerName", 0&, KEY_ALL_ACCESS, hKey)


a = RegQueryValueExString(hKey, "ComputerName", 0&, Types, St, Len(St))


St = Left(St, InStr(1, St, Chr(0)) - 1)


Print St


End Sub


RegEnumKeyEx


با اين تابع مي توانيد تمام زير كليد هاي يك كليد در رجيستري را استخراج كنيد.


مقدار برگشتي اين تابع مي تواند يكي از مقادير زير باشد:


Private Const ERROR_NO_MORE_ITEMS = 259&


Private Const ERROR_SUCCESS = 0&






Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long


پارامترها:


hKey : اين متغير يك اشاره گر از كليد (باز شده) مي باشد كه توسط توابع RegOpenKeyex , RegCreateKeyex بدست مي آيد.


dwIndex : اين شماره زير كليد است.مثلا براي گرفتن كليد سوم در يك كليد اين مقدار بايد 3 باشد.


lpName :‌اين متغير محل ذخيره شدن نام كليد است كه بايد به مقدار كافي خالي باشد يا با يك مقدار ديگر پر شده باشد(به مثال توجه كنيد)


lpcbName : اين متغير طول متغير lpName است كه مي توانيد از Len استفاده كنيد.


lpReserved : مقدار اين متغير را حتما ByVal 0& قرار دهيد.


lpClass : مقدار اين متغير را vbNullString قرار دهيد.


lpcbClass : مقدار اين متغير را byval 0& قرار دهيد.


lpftLastWriteTime : مقدار اين متغير را Byval 0& قرار دهيد.


به مثال زير توجه كنيد:


يك ListBox با نام List1 و يك CommandBox با نام Command2 به فرم اضافه كنيد و كد زير را بنويسيد:


Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long


Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long


Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long


Private Const KEY_ALL_ACCESS = &H3F


Private Const HKEY_LOCAL_MACHINE = &H80000002


Private Const ERROR_NO_MORE_ITEMS = 259&


Private Const ERROR_SUCCESS = 0&


Private Sub Command1_Click()


Dim hKey As Long


Dim a As Long


Dim St As String


Dim Num As Long


Dim b As Long


b = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software", 0, KEY_ALL_ACCESS, hKey)


Num = 0


St = String(255, Chr(0))


While RegEnumKeyEx(hKey, Num, St, Len(St), ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS


List1.AddItem Left(St, InStr(1, St, Chr(0)) - 1)


Num = Num + 1


St = String(255, Chr(0))


DoEvents


Wend


RegCloseKey hKey


End Sub


مي بينيد كه تمام زير كليدهاي كليد Software در كليدH key_Local_Machine در List1 ظاهر مي شود.


RegEnumValue


اين تابع تمام دستورها ي موجود در يك كليد ومقادير آن ها را مي گيرد.


مقادير بازگشتي اين تابع نيز مانند تابع قبلي مي تواند يكي از موارد زير باشد:


Private Const ERROR_NO_MORE_ITEMS = 259&


Private Const ERROR_SUCCESS = 0&


تابع:


Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long


پارامترها:


hKey : : اين متغير يك اشاره گر از كليد (باز شده) مي باشد كه توسط توابع RegOpenKeyex , RegCreateKeyex بدست مي آيد.


dwIndex : اين شماره زير كليد است.مثلا براي گرفتن دستور سوم در يك كليد اين مقدار بايد 3 باشد.


lpValueName : در اين متغير نام دستور قرار مي گيرد.كه بايد به مقدار كافي خالي باشد.


lpcbValueName : اين متغير طول متغير lpValueName است.


lpReserved ‌: مقدار اين متغير را ByVal 0& قرار دهيد.


lpType : اگر اين پارامتر را مقدار دهي كنيد فقط دستورهايي برگردانده مي شوند كه از اين نوع باشند و اگر مي خواهيد تمام دستورها با هر نوعي بازگردانده شوند مقدار اين متغير ByVal 0& قرار دهيد.


lpData : در اين متغير مقدار دستورات قرار مي گيرد و اگر مي خواهيد مقداري توسط تابع بازگردانده نشود مقدار اين متغير را ByVal 0& قرار دهيد.

navid_mansour
15-06-2006, 20:12
ببین من می خوام بت دستور رجیستری بتونم یک نوشته رو تو هرجا مثلا تو یک جعبه متن یا منو ذخیره کرد..... یه نمونه میزاری؟

Soheilvb
15-06-2006, 22:05
خوب با اين دستورات يه جا ذخيره كن و بعد با query هنگام لود شدن بخون

shahrdartoope
17-06-2006, 02:41
سهیل جان خیلی باحال بول لطفا کارتو ادامه بده

Soheilvb
17-06-2006, 12:32
ديگه تابع ديگه اي نياز دارين بگين توضيح مي دم