PDA

View Full Version : آموزش: بکاپ گیری از ریجستری از طریق توابع Api



reza94
دوشنبه 02 مرداد 1391, 16:39 عصر
با سلام و خسته نباشید


من از طریق کد زیر یک تابع api تعریف کردم

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)


End Function

حال چگونه میتوانم از طریق تابع بالا ، از ریجستری بکاپ تهیه کنم؟ :لبخندساده:
فکر کنم در تابع بالا قسمتی از کد هم مشکل داشته باشه ! دوستان میتونن مشکلشو بگن؟

reza94
دوشنبه 02 مرداد 1391, 21:18 عصر
دوستان کسی بلد نیست؟

saeedvir
سه شنبه 03 مرداد 1391, 08:49 صبح
شما به سر هر چند تا Sub Key اصلی که رسیدی بقیه رو Enum کن (می تونی از سورس Registry Editor ) استفاده کنی

اینم دو تا کد که به دردت می خوره (البته با توابع API) هم میشه :



Public SUB RegeditExport(path As String, OutFileName As String)

Dim sKey As String
Dim sCmd As String

sCmd = "regedit /e " & OutFileName & " "
'sKey = Chr$(34) & "HKEY_LOCAL_MACHINE\SOFTWARE\atest" & Chr$(34)
sKey = Chr(34) & path & Chr(34)

Shell sCmd & sKey
End SUB





Public SUB RegeditImport(sFilename As String)
Shell "regedit.exe /s /c " & Chr(34) & sFilename & Chr(34), vbHide
End SUB



در این کد دومی sFileName = آدرس فایل Backup