ورود

View Full Version : سوال: خواندن ریحستری در ویندوز 64 بیتی



R2du-soft
شنبه 31 تیر 1391, 03:35 صبح
سلام
با چه کدی میشه توی ویندوز 64 بیتی یک key رو خوند و اون رو توی یک تکست باکس نمایش داد؟
(دستور WshShell.RegRead توی ویندوز 64 بیتی کار نمیکنه)
مرسی

R2du-soft
شنبه 31 تیر 1391, 13:35 عصر
از تمامی دوستان خواهش میکنم که منو تو مشکلی پیش اومده که بالا مطرحش کردم کمک کنن
مرسی از همه

saeedvir
شنبه 31 تیر 1391, 14:28 عصر
شاید با Run As Admin درست بشه.(امتحان کنید)

R2du-soft
شنبه 31 تیر 1391, 15:14 عصر
توی یوزر ادمین هستم (دسترسیم ادمین هست)
ولی کار نمیکنه!
اگه منظورتون چیز دیگه بود میشه توضیح بدید؟

meys34
شنبه 31 تیر 1391, 16:22 عصر
احتمالا مشکل از آبجکت WshShell هست...

اگر این کد جواب نداد API حتما جواب میده:قلب:

' Reads a REG_SZ value from the local computer's registry using WMI.
' Parameters:
' RootKey - The registry hive (see http://msdn.microsoft.com/en-us/library/aa390788(VS.85).aspx for a list of possible values).
' Key - The key that contains the desired value.
' Value - The value that you want to get.
' RegType - The registry bitness: 32 or 64.
'
Function ReadRegStr(RootKey, Key, Value, RegType)
Dim oCtx, oLocator, oReg, oInParams, oOutParams

Set oCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
oCtx.Add "__ProviderArchitecture", RegType

Set oLocator = CreateObject("Wbemscripting.SWbemLocator")
Set oReg = oLocator.ConnectServer("", "root\default", "", "", , , , oCtx).Get("StdRegProv")

Set oInParams = oReg.Methods_("GetStringValue").InParameters
oInParams.hDefKey = RootKey
oInParams.sSubKeyName = Key
oInParams.sValueName = Value

Set oOutParams = oReg.ExecMethod_("GetStringValue", oInParams, , oCtx)

ReadRegStr = oOutParams.sValue
End Function

Private Sub Command1_Click()
Const HKEY_LOCAL_MACHINE = &H80000002
sPath = ReadRegStr(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\ASP.NET\2.0.50727.0", "Path", 64)
Print sPath

End Sub