تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 12

نام تاپيک: يك كليد تويه رجيستري ساختم و مي خوام برنامه‌ام وجود اونرو چك كنه

  1. #1
    پروفشنال کاپتان هادی's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    کرمان
    پست ها
    538

    10 يك كليد تويه رجيستري ساختم و مي خوام برنامه‌ام وجود اونرو چك كنه

    با سلام به همه دوستان من يك كليد تويه رجيستري ساختم و مي خوام برنامه‌ام وجود اونرو چك كنه اگر مي شه كدي كه اين كارو مي كنه به من بديد

  2. #2
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    اول با اين تابع كليد بالايي رو باز كن.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    بعد با اين api كليدتو سرچ كن.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  3. #3
    پروفشنال کاپتان هادی's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    کرمان
    پست ها
    538

    10

    نقل قول نوشته شده توسط Payman_62
    اول با اين تابع كليد بالايي رو باز كن.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    بعد با اين api كليدتو سرچ كن.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ُسلام دوست عزيز اين فانكشن رو اگه كامل توضيح بدي خيلي ممنون مي شم در ضمن اگه مي شه تين رو به صورت شرطي كه اگر بود يك عمل انجام بده و اگر نبود يك كار ديگه بكنه بنويسي

  4. #4
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    از msdn كمك بگير ديگه من هم با msdn ياد گرفتم. توضيحش وقت گيره.

  5. #5
    پروفشنال کاپتان هادی's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    کرمان
    پست ها
    538

    10

    نقل قول نوشته شده توسط Payman_62
    از msdn كمك بگير ديگه من هم با msdn ياد گرفتم. توضيحش وقت گيره.
    متاسفانه من الان msdn ندارم اگر فقط كد شرطيرو بنويسي ممنون مي شم

  6. #6
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    اين يه مثال
    RegOpenKeyExA HKEY_CLASSES_ROOT, "Software\Microsoft\MediaPlayer", 0, KEY_READ, hKey
    hKey هندل اين كليد هست: HKEY_CLASSES_ROOT\Software\Microsoft\MediaPlayer
    حالا ميتوني اين كليد رو پاك كني يا تو اين كليد دنبال كليد ديگر يا يك value بگردي يا ...
    با تابع RegEnumKeyExA ميتوني دنبال كليدت بگردي. به اين صورت:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by Payman_62; 11-03-2006 at 20:53.

  7. #7
    پروفشنال کاپتان هادی's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    کرمان
    پست ها
    538

    10

    ممنون عزيزم

  8. #8
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    قابلي نداشت.

  9. #9
    داره خودمونی میشه HAW3D's Avatar
    تاريخ عضويت
    Feb 2006
    محل سكونت
    urmia
    پست ها
    197

    پيش فرض

    اين هم يد كد ماجول براي زيرورو كردن رجيستري هر كاري ميشه كرد
    تابي هايش را نگاه كنيد

    Type FILETIME
    lLowDateTime As Long
    lHighDateTime As Long
    End Type

    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
    Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
    Declare Function RegQueryValueEx 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
    Declare Function RegQueryValueExA Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByRef lpData As Long, lpcbData As Long) As Long
    Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
    Declare Function RegSetValueExA Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByRef lpData As Long, ByVal cbData As Long) As Long
    Declare Function RegSetValueExB Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByRef lpData As Byte, ByVal cbData As Long) As Long

    Const ERROR_SUCCESS = 0&
    Const ERROR_BADDB = 1009&
    Const ERROR_BADKEY = 1010&
    Const ERROR_CANTOPEN = 1011&
    Const ERROR_CANTREAD = 1012&
    Const ERROR_CANTWRITE = 1013&
    Const ERROR_OUTOFMEMORY = 14&
    Const ERROR_INVALID_PARAMETER = 87&
    Const ERROR_ACCESS_DENIED = 5&
    Const ERROR_NO_MORE_ITEMS = 259&
    Const ERROR_MORE_DATA = 234&

    Const REG_NONE = 0&
    Const REG_SZ = 1&
    Const REG_EXPAND_SZ = 2&
    Const REG_BINARY = 3&
    Const REG_DWORD = 4&
    Const REG_DWORD_LITTLE_ENDIAN = 4&
    Const REG_DWORD_BIG_ENDIAN = 5&
    Const REG_LINK = 6&
    Const REG_MULTI_SZ = 7&
    Const REG_RESOURCE_LIST = 8&
    Const REG_FULL_RESOURCE_DESCRIPTOR = 9&
    Const REG_RESOURCE_REQUIREMENTS_LIST = 10&

    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 READ_CONTROL = &H20000
    Const WRITE_DAC = &H40000
    Const WRITE_OWNER = &H80000
    Const SYNCHRONIZE = &H100000
    Const STANDARD_RIGHTS_REQUIRED = &HF0000
    Const STANDARD_RIGHTS_READ = READ_CONTROL
    Const STANDARD_RIGHTS_WRITE = READ_CONTROL
    Const STANDARD_RIGHTS_EXECUTE = READ_CONTROL
    Const KEY_READ = STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
    Const KEY_WRITE = STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
    Const KEY_EXECUTE = KEY_READ

    Dim hKey As Long, MainKeyHandle As Long
    Dim rtn As Long, lBuffer As Long, sBuffer As String
    Dim lBufferSize As Long
    Dim lDataSize As Long
    Dim ByteArray() As Byte

    'This constant determins wether or not to display error messages to the
    'user. I have set the default value to False as an error message can and
    'does become irritating after a while. Turn this value to true if you want
    'to debug your programming code when reading and writing to your system
    'registry, as any errors will be displayed in a message box.

    Const DisplayErrorMsg = False


    Function SetDWORDValue(SubKey As String, Entry As String, Value As Long)

    Call ParseKey(SubKey, MainKeyHandle)

    If MainKeyHandle Then
    rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, hKey) 'open the key
    If rtn = ERROR_SUCCESS Then 'if the key was open successfully then
    rtn = RegSetValueExA(hKey, Entry, 0, REG_DWORD, Value, 4) 'write the value
    If Not rtn = ERROR_SUCCESS Then 'if there was an error writting the value
    If DisplayErrorMsg = True Then 'if the user want errors displayed
    MsgBox ErrorMsg(rtn) 'display the error
    End If
    End If
    rtn = RegCloseKey(hKey) 'close the key
    Else 'if there was an error opening the key
    If DisplayErrorMsg = True Then 'if the user want errors displayed
    MsgBox ErrorMsg(rtn) 'display the error
    End If
    End If
    End If

    End Function
    Function GetDWORDValue(SubKey As String, Entry As String)

    Call ParseKey(SubKey, MainKeyHandle)

    If MainKeyHandle Then
    rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, hKey) 'open the key
    If rtn = ERROR_SUCCESS Then 'if the key could be opened then
    rtn = RegQueryValueExA(hKey, Entry, 0, REG_DWORD, lBuffer, 4) 'get the value from the registry
    If rtn = ERROR_SUCCESS Then 'if the value could be retreived then
    rtn = RegCloseKey(hKey) 'close the key
    GetDWORDValue = lBuffer 'return the value
    Else 'otherwise, if the value couldnt be retreived
    GetDWORDValue = "Error" 'return Error to the user
    If DisplayErrorMsg = True Then 'if the user wants errors displayed
    MsgBox ErrorMsg(rtn) 'tell the user what was wrong
    End If
    End If
    Else 'otherwise, if the key couldnt be opened
    GetDWORDValue = "Error" 'return Error to the user
    If DisplayErrorMsg = True Then 'if the user wants errors displayed
    MsgBox ErrorMsg(rtn) 'tell the user what was wrong
    End If
    End If
    End If

    End Function
    Function SetBinaryValue(SubKey As String, Entry As String, Value As String)

    Call ParseKey(SubKey, MainKeyHandle)

    If MainKeyHandle Then
    rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, hKey) 'open the key
    If rtn = ERROR_SUCCESS Then 'if the key was open successfully then
    lDataSize = Len(Value)
    ReDim ByteArray(lDataSize)
    For i = 1 To lDataSize
    ByteArray(i) = Asc(Mid$(Value, i, 1))
    Next
    rtn = RegSetValueExB(hKey, Entry, 0, REG_BINARY, ByteArray(1), lDataSize) 'write the value
    If Not rtn = ERROR_SUCCESS Then 'if the was an error writting the value
    If DisplayErrorMsg = True Then 'if the user want errors displayed
    MsgBox ErrorMsg(rtn) 'display the error
    End If
    End If
    rtn = RegCloseKey(hKey) 'close the key
    Else 'if there was an error opening the key
    If DisplayErrorMsg = True Then 'if the user wants errors displayed
    MsgBox ErrorMsg(rtn) 'display the error
    End If
    End If
    End If

    End Function


    Function GetBinaryValue(SubKey As String, Entry As String)

    Call ParseKey(SubKey, MainKeyHandle)

    If MainKeyHandle Then
    rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, hKey) 'open the key
    If rtn = ERROR_SUCCESS Then 'if the key could be opened
    lBufferSize = 1
    rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, 0, lBufferSize) 'get the value from the registry
    sBuffer = Space(lBufferSize)
    rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, sBuffer, lBufferSize) 'get the value from the registry
    If rtn = ERROR_SUCCESS Then 'if the value could be retreived then
    rtn = RegCloseKey(hKey) 'close the key
    GetBinaryValue = sBuffer 'return the value to the user
    Else 'otherwise, if the value couldnt be retreived
    GetBinaryValue = "Error" 'return Error to the user
    If DisplayErrorMsg = True Then 'if the user wants to errors displayed
    MsgBox ErrorMsg(rtn) 'display the error to the user
    End If
    End If
    Else 'otherwise, if the key couldnt be opened
    GetBinaryValue = "Error" 'return Error to the user
    If DisplayErrorMsg = True Then 'if the user wants to errors displayed
    MsgBox ErrorMsg(rtn) 'display the error to the user
    End If
    End If
    End If

    End Function
    Function DeleteKey(Keyname As String)

    Call ParseKey(Keyname, MainKeyHandle)

    If MainKeyHandle Then
    rtn = RegOpenKeyEx(MainKeyHandle, Keyname, 0, KEY_WRITE, hKey) 'open the key
    If rtn = ERROR_SUCCESS Then 'if the key could be opened then
    rtn = RegDeleteKey(hKey, Keyname) 'delete the key
    rtn = RegCloseKey(hKey) 'close the key
    End If
    End If

    End Function

    Function GetMainKeyHandle(MainKeyName As String) As Long

    Const HKEY_CLASSES_ROOT = &H80000000
    Const HKEY_CURRENT_USER = &H80000001
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const HKEY_USERS = &H80000003
    Const HKEY_PERFORMANCE_DATA = &H80000004
    Const HKEY_CURRENT_CONFIG = &H80000005
    Const HKEY_DYN_DATA = &H80000006

    Select Case MainKeyName
    Case "HKEY_CLASSES_ROOT"
    GetMainKeyHandle = HKEY_CLASSES_ROOT
    Case "HKEY_CURRENT_USER"
    GetMainKeyHandle = HKEY_CURRENT_USER
    Case "HKEY_LOCAL_MACHINE"
    GetMainKeyHandle = HKEY_LOCAL_MACHINE
    Case "HKEY_USERS"
    GetMainKeyHandle = HKEY_USERS
    Case "HKEY_PERFORMANCE_DATA"
    GetMainKeyHandle = HKEY_PERFORMANCE_DATA
    Case "HKEY_CURRENT_CONFIG"
    GetMainKeyHandle = HKEY_CURRENT_CONFIG
    Case "HKEY_DYN_DATA"
    GetMainKeyHandle = HKEY_DYN_DATA
    End Select

    End Function

    Function ErrorMsg(lErrorCode As Long) As String

    'If an error does accurr, and the user wants error messages displayed, then
    'display one of the following error messages

    Select Case lErrorCode
    Case 1009, 1015
    GetErrorMsg = "The Registry Database is corrupt!"
    Case 2, 1010
    GetErrorMsg = "Bad Key Name"
    Case 1011
    GetErrorMsg = "Can't Open Key"
    Case 4, 1012
    GetErrorMsg = "Can't Read Key"
    Case 5
    GetErrorMsg = "Access to this key is denied"
    Case 1013
    GetErrorMsg = "Can't Write Key"
    Case 8, 14
    GetErrorMsg = "Out of memory"
    Case 87
    GetErrorMsg = "Invalid Parameter"
    Case 234
    GetErrorMsg = "There is more data than the buffer has been allocated to hold."
    Case Else
    GetErrorMsg = "Undefined Error Code: " & Str$(lErrorCode)
    End Select

    End Function



    Function GetStringValue(SubKey As String, Entry As String)

    Call ParseKey(SubKey, MainKeyHandle)

    If MainKeyHandle Then
    rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, hKey) 'open the key
    If rtn = ERROR_SUCCESS Then 'if the key could be opened then
    sBuffer = Space(255) 'make a buffer
    lBufferSize = Len(sBuffer)
    rtn = RegQueryValueEx(hKey, Entry, 0, REG_SZ, sBuffer, lBufferSize) 'get the value from the registry
    If rtn = ERROR_SUCCESS Then 'if the value could be retreived then
    rtn = RegCloseKey(hKey) 'close the key
    sBuffer = Trim(sBuffer)
    GetStringValue = Left(sBuffer, Len(sBuffer) - 1) 'return the value to the user
    Else 'otherwise, if the value couldnt be retreived
    GetStringValue = "Error" 'return Error to the user
    If DisplayErrorMsg = True Then 'if the user wants errors displayed then
    MsgBox ErrorMsg(rtn) 'tell the user what was wrong
    End If
    End If
    Else 'otherwise, if the key couldnt be opened
    GetStringValue = "Error" 'return Error to the user
    If DisplayErrorMsg = True Then 'if the user wants errors displayed then
    MsgBox ErrorMsg(rtn) 'tell the user what was wrong
    End If
    End If
    End If

    End Function

    Private Sub ParseKey(Keyname As String, Keyhandle As Long)

    rtn = InStr(Keyname, "\") 'return if "\" is contained in the Keyname

    If Left(Keyname, 5) <> "HKEY_" Or Right(Keyname, 1) = "\" Then 'if the is a "\" at the end of the Keyname then
    MsgBox "Incorrect Format:" + Chr(10) + Chr(10) + Keyname 'display error to the user
    Exit Sub 'exit the procedure
    ElseIf rtn = 0 Then 'if the Keyname contains no "\"
    Keyhandle = GetMainKeyHandle(Keyname)
    Keyname = "" 'leave Keyname blank
    Else 'otherwise, Keyname contains "\"
    Keyhandle = GetMainKeyHandle(Left(Keyname, rtn - 1)) 'seperate the Keyname
    Keyname = Right(Keyname, Len(Keyname) - rtn)
    End If

    End Sub
    Function CreateKey(SubKey As String)

    Call ParseKey(SubKey, MainKeyHandle)

    If MainKeyHandle Then
    rtn = RegCreateKey(MainKeyHandle, SubKey, hKey) 'create the key
    If rtn = ERROR_SUCCESS Then 'if the key was created then
    rtn = RegCloseKey(hKey) 'close the key
    End If
    End If

    End Function
    Function SetStringValue(SubKey As String, Entry As String, Value As String)

    Call ParseKey(SubKey, MainKeyHandle)

    If MainKeyHandle Then
    rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_WRITE, hKey) 'open the key
    If rtn = ERROR_SUCCESS Then 'if the key was open successfully then
    rtn = RegSetValueEx(hKey, Entry, 0, REG_SZ, ByVal Value, Len(Value)) 'write the value
    If Not rtn = ERROR_SUCCESS Then 'if there was an error writting the value
    If DisplayErrorMsg = True Then 'if the user wants errors displayed
    MsgBox ErrorMsg(rtn) 'display the error
    End If
    End If
    rtn = RegCloseKey(hKey) 'close the key
    Else 'if there was an error opening the key
    If DisplayErrorMsg = True Then 'if the user wants errors displayed
    MsgBox ErrorMsg(rtn) 'display the error
    End If
    End If
    End If

    End Function

    EEart!

  10. #10
    داره خودمونی میشه HAW3D's Avatar
    تاريخ عضويت
    Feb 2006
    محل سكونت
    urmia
    پست ها
    197

    پيش فرض

    شرمنده يه كم دراز شد
    EEart!

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •