Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: FranciskoAsdf en 14 Junio 2014, 17:40 pm



Título: [VB] [Registro ] Modificar valor DWORD (Solucionado)
Publicado por: FranciskoAsdf en 14 Junio 2014, 17:40 pm
Estimados, necesito su ayuda de nuevo!

Necesito saber como modificar un valor DWORD en el registro, el valor cambia de 1  a  0, he buscado pero NO ENTIENDO NADA DE ESTO, y necesito que me guíen o ayuden directamente xD por favor xD.

tengo la ruta dónde está la clave y el nombre.

["HKEY_CURRENT_USER\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security\" ]
 y la clave es AccessVBOM.

por favor si alguien me puede ayudar,  es lo único que me falta para terminar mi programa.

gracias de ante mano!

Saludos!


Título: Re: [VB] [Registro ] Modifica valor DWORD
Publicado por: XresH en 14 Junio 2014, 20:29 pm
Esto es sencillo te dejo una guia para que lo tengas bien explicado, cualquier duda comentala que te ayudo ;)


Código:
http://www.ots.ac.cr/tech/node/315


Saludos espero sirva.


Título: Re: [VB] [Registro ] Modifica valor DWORD
Publicado por: FranciskoAsdf en 15 Junio 2014, 01:23 am
Hola, muchas gracias por tu respuesta, super bien explicado -y lo mejor- en pocas lineas xD

Pero como no todo puede ser perfecto, me da un error en tiempo de ejecución..


Ahora solo intento saber que valor tiene la clave para modificarla si es necesario o no.

Y lo hice así:

Código
  1. Private Sub ExcelAccessVBOM()
  2. ExcelVersion = ExcelApp.Version
  3. Set FakeRegedit = CreateObject("Wscript.Shell")
  4. ValorReg = FakeRegedit.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security")
  5. MsgBox ValorReg
  6. Set FakeRegedit = Nothing
  7. End Sub
  8.  

Y la llamo desde Form_Load(), pero al momento de cargar me sale el siguiente error:

Código:
"No se pudo abrir la clave del registro "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security" para leerla"

Revise la clave varias veces, e incluso la copie directo del Registro, pero nada. Probé cargando directamente la función desde el Form_Load(), pero me da el mismo error.

E de agregar que tengo todos los permisos necesarios para leer y/o modificar el registro.

Si fueras tan amable o alguien mas me guiarme porfavor xD.

EDIT: El tipo de variable de ValorReg es Integer.


Título: Re: [VB] [Registro ] Modificar valor DWORD (Solucionado)
Publicado por: FranciskoAsdf en 15 Junio 2014, 22:52 pm
Lo hice, pero no de esa forma, si no, usando API, por lo menos en mi pc funcionó xD.

Dejo acá como lo hice :D!

Código
  1. Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
  2. Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  3. Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As Long) As Long
  4. Private Const HKEY_CURRENT_USER = &H80000001
  5. Private Const REG_DWORD = 4
  6. Dim nBufferKey As Long
  7. Dim nVal As Long
  8.  

Código
  1. Private Sub Form_Load()
  2.    ExcelVersion = ExcelApp.Version
  3.    nVal = 1
  4.    RegOpenKey HKEY_CURRENT_USER, "Software\Microsoft\Office\" & ExcelVersion & "\Excel\Security", nBufferKey
  5.    RegSetValueEx nBufferKey, "AccessVBOM", 0, REG_DWORD, nVal, Len(nVal)
  6.    'MsgBox "Sandbox Mode Changed", vbInformation, "Sandbox"
  7.    RegCloseKey nBufferKey
  8.   mibd.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DataAndStuff\cllbd.mdb;Persist Security Info=False"
  9.   PB1.Min = 0
  10.   Open App.Path & "\DataAndStuff\OrdenPlanillaInventario.txt" For Input As #1
  11.   Do Until EOF(1)
  12.      Line Input #1, Linea
  13.      Total = Total + Linea + vbCrLf
  14.   Loop
  15.   Close #1
  16.   Label1.Caption = "NOTA IMPORTANTE:" & vbNewLine & "El archivo debe ser generado como ""HOJA CALCULO COSTE"" o el sistema dará ERROR."""
  17.   'ExcelAccessVBOM
  18. End Sub
  19.  

Saludos, y gracias!