امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
گرفتن مقدار یک فیل Dword در رجستری
نویسنده پیام
sevdaboy آفلاین
كاربر دو ستاره
**

ارسال‌ها: 73
موضوع‌ها: 24
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 35
( 27 تشکر در 17 ارسال )
ارسال: #1
Exclamation  گرفتن مقدار یک فیل Dword در رجستری
با سلام

آیا کدی هست که بتونه مقدار یک فایل Dword رو از رجستری بگیره ؟

من یک مثال راجع به String دارم ولی ظاهراً عملی نیست

ممنون میشم کمک منید

دانلود سورس


.zip   Get.zip (اندازه: 2.06 KB / تعداد دفعات دریافت: 28)

[تصویر:  Behrang-Emza.gif]
۱۵-آبان-۱۳۸۹, ۲۱:۰۹:۳۴
ارسال‌ها
پاسخ
Mr.pRoGraMmer غایب
کاربر با تجربه
****

ارسال‌ها: 1,084
موضوع‌ها: 58
تاریخ عضویت: اسفند ۱۳۸۷

تشکرها : 2031
( 2927 تشکر در 1008 ارسال )
ارسال: #2
RE: گرفتن مقدار یک فیل Dword در رجستری
کد:
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 Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
    "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
    ByVal lpReserved As Long, lpType As Long, lpData As Any, _
    lpcbData As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
    Any, source As Any, ByVal numBytes As Long)

Const KEY_READ = &H20019  ' ((READ_CONTROL Or KEY_QUERY_VALUE Or
                          ' KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not
                          ' SYNCHRONIZE))

Const REG_SZ = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY = 3
Const REG_DWORD = 4
Const REG_MULTI_SZ = 7
Const ERROR_MORE_DATA = 234

' Read a Registry value
'
' Use KeyName = "" for the default value
' If the value isn't there, it returns the DefaultValue
' argument, or Empty if the argument has been omitted
'
' Supports DWORD, REG_SZ, REG_EXPAND_SZ, REG_BINARY and REG_MULTI_SZ
' REG_MULTI_SZ values are returned as a null-delimited stream of strings
' (VB6 users can use SPlit to convert to an array of string)

Function GetRegistryValue(ByVal hKey As Long, ByVal KeyName As String, _
    ByVal ValueName As String, Optional DefaultValue As Variant) As Variant
    Dim handle As Long
    Dim resLong As Long
    Dim resString As String
    Dim resBinary() As Byte
    Dim length As Long
    Dim retVal As Long
    Dim valueType As Long
    
    ' Prepare the default result
    GetRegistryValue = IIf(IsMissing(DefaultValue), Empty, DefaultValue)
    
    ' Open the key, exit if not found.
    If RegOpenKeyEx(hKey, KeyName, 0, KEY_READ, handle) Then
        Exit Function
    End If
    
    ' prepare a 1K receiving resBinary
    length = 1024
    ReDim resBinary(0 To length - 1) As Byte
    
    ' read the registry key
    retVal = RegQueryValueEx(handle, ValueName, 0, valueType, resBinary(0), _
        length)
    ' if resBinary was too small, try again
    If retVal = ERROR_MORE_DATA Then
        ' enlarge the resBinary, and read the value again
        ReDim resBinary(0 To length - 1) As Byte
        retVal = RegQueryValueEx(handle, ValueName, 0, valueType, resBinary(0), _
            length)
    End If
    
    ' return a value corresponding to the value type
    Select Case valueType
        Case REG_DWORD
            CopyMemory resLong, resBinary(0), 4
            GetRegistryValue = resLong
        Case REG_SZ, REG_EXPAND_SZ
            ' copy everything but the trailing null char
            resString = Space$(length - 1)
            CopyMemory ByVal resString, resBinary(0), length - 1
            GetRegistryValue = resString
        Case REG_BINARY
            ' resize the result resBinary
            If length <> UBound(resBinary) + 1 Then
                ReDim Preserve resBinary(0 To length - 1) As Byte
            End If
            GetRegistryValue = resBinary()
        Case REG_MULTI_SZ
            ' copy everything but the 2 trailing null chars
            resString = Space$(length - 2)
            CopyMemory ByVal resString, resBinary(0), length - 2
            GetRegistryValue = resString
        Case Else
            RegCloseKey handle
            Err.Raise 1001, , "Unsupported value type"
    End Select
    
    ' close the registry key
    RegCloseKey handle
End Function

منبع کامل اموزشی
http://www.bigresource.com/VB-getting-re...UAPQJ.html
موفق باشید

۱۶-آبان-۱۳۸۹, ۰۴:۵۷:۱۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sevdaboy
sevdaboy آفلاین
كاربر دو ستاره
**

ارسال‌ها: 73
موضوع‌ها: 24
تاریخ عضویت: مهر ۱۳۸۵

تشکرها : 35
( 27 تشکر در 17 ارسال )
ارسال: #3
RE: گرفتن مقدار یک فیل Dword در رجستری
ممنونم کد بدرد بخوری بود ، اما باز هم نتونستم توی تکست باکس مقدار یک فایل Dword رو بگیرم

لطف کنید خودتون یک تست بزنید

[تصویر:  Behrang-Emza.gif]
(آخرین ویرایش در این ارسال: ۲۵-آبان-۱۳۸۹, ۲۰:۳۸:۱۰، توسط sevdaboy.)
۲۵-آبان-۱۳۸۹, ۲۰:۳۷:۴۰
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] خطای 1004 در فراخوانی مقدار روی شیت با نشانی جدول eppagh 0 3,758 ۰۷-خرداد-۱۳۹۵, ۱۸:۰۵:۱۴
آخرین ارسال: eppagh
  گرفتن متن فارسی و نمایش آن از فایل متنی GTAexcess 2 3,065 ۱۳-اردیبهشت-۱۳۹۵, ۱۴:۰۸:۴۷
آخرین ارسال: Ghoghnus
  مشکل ماژول گرفتن اطلاعات سیستم hossein161 1 2,792 ۲۰-شهریور-۱۳۹۴, ۱۵:۲۲:۲۲
آخرین ارسال: Payman62
  [سوال] کنترل مقدار نوع داده که از تکس باکس فرم دریافت می شود eppagh 2 3,307 ۰۲-مرداد-۱۳۹۴, ۱۰:۵۴:۰۰
آخرین ارسال: Ghoghnus
  [سوال] مشکل جابجا کردن مقدار متغیر از ThisWorkbook به Worksheet_Change در اکسل eppagh 0 2,200 ۰۸-اسفند-۱۳۹۳, ۲۱:۴۷:۵۴
آخرین ارسال: eppagh
  [سوال] گرفتن شماره ستون و ردیف از رنج مشخص به شکل داینامیک eppagh 0 2,162 ۰۶-اسفند-۱۳۹۳, ۲۰:۱۸:۱۳
آخرین ارسال: eppagh
  [سوال] به دست آوردن ماکسیمم یا مینیمم مقدار یک رنج اکسل eppagh 3 4,164 ۰۹-دى-۱۳۹۳, ۱۵:۳۲:۳۷
آخرین ارسال: eppagh
  کمک برای گرفتن خروجی در EXCEL javad917 4 5,369 ۱۵-آبان-۱۳۹۳, ۱۴:۵۸:۵۴
آخرین ارسال: javad917
  [سوال] تغییر مقدار ComboBox با تایمر محمدعلي 1 2,327 ۲۷-مرداد-۱۳۹۳, ۱۱:۵۱:۳۵
آخرین ارسال: Vb6Moderator
  جستجو مقدار مورد نظر در Cellهای رنج تعریف شده و دریافت نشانی Cellهای آن eppagh 9 6,594 ۱۲-مرداد-۱۳۹۳, ۰۹:۵۴:۰۳
آخرین ارسال: eppagh

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS