m2011kh
پنج شنبه 13 مرداد 1390, 15:29 عصر
من ميخوام يه مقدار يا رشته رو از رجيستري بگيرم آموزش هاي هم پيدا كردم ولي هيچ كدوم واضح و درست آموزش نداده بودم دوستان كمك كنند خيلي ممنون ميشم.
:قلب:
m2011kh
جمعه 14 مرداد 1390, 12:12 عصر
آقا كسي نيست كمك كنه:گریه:
:ناراحت::افسرده::عصبانی++:
كمكم كنيد:قلب:
محسن واژدی
شنبه 15 مرداد 1390, 00:17 صبح
سلام علیکم
برای گرفتن یک رشته، کد زیر را در یک ماژول کپی کنید:
Option Explicit
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
Declare Function RegOpenKey _
Lib "advapi32.dll" _
Alias "RegOpenKeyA" (ByVal hKey As Long, _
ByVal lpSubKey As String, _
phkResult As Long) As Long
Public Const HKCR = &H80000000 'HKEY_CLASSES_ROOT
Public Const HKCU = &H80000001 'HKEY_CURRENT_USER
Public Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Public Const REG_SZ = 1
Public Function GetString(ByVal hKey As Long, _
ByVal strPath As String, _
ByVal strValue As String)
On Error Resume Next
Dim Keyhand As Long, datatype As Long, lResult As Long, r&, lValueType&
Dim strBuf As String, lDataBufSize As Long, intZeroPos As Integer
r = RegOpenKey(hKey, strPath, Keyhand)
Call RegQueryValueEx(Keyhand, strValue, 0&, lValueType, ByVal 0&, lDataBufSize)
If lValueType = REG_SZ Then
strBuf = String(lDataBufSize, " ")
Call RegQueryValueEx(Keyhand, strValue, 0&, 0&, ByVal strBuf, lDataBufSize)
intZeroPos = InStr(strBuf, Chr$(0))
If intZeroPos > 0 Then
GetString = Left$(strBuf, intZeroPos - 1)
Else
GetString = strBuf
End If
End If
End Function
نمونه استفاده:
Private Sub Command1_Click()
MsgBox GetString(HKCU, "Control Panel\Desktop", "Wallpaper")
End Sub
موفق باشید
m2011kh
شنبه 15 مرداد 1390, 13:29 عصر
متشكرم خيلي كمك كرديد:لبخندساده:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.