Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda pls

Estas en el tema de Ayuda pls en el foro de Visual Basic clásico en Foros del Web. Hola necesito que me digais como puedo hacer en visual basic para sumar 1 al valor que contiene una direccion de memoria es decir Dim ...
  #1 (permalink)  
Antiguo 29/05/2008, 10:19
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Pregunta Ayuda pls

Hola necesito que me digais como puedo hacer en visual basic para sumar 1 al valor que contiene una direccion de memoria es decir

Dim cuenta As Long
Dim cuenta1 As Long
Call ReadAlong("Warrock", &H4E45FFB, cuenta)
cuenta1 = cuenta+ 1
Call WriteAlong("Warrock", &H4E45FFB, cuenta1)

seria asi??

kiero coger el valor que contiene esta direccion 4E45FFB q es 156038

y sumarle 1 y que salga 156039

aver si podeis ayudarme Gracias por todo

Última edición por xsmilex83; 29/05/2008 a las 13:41
  #2 (permalink)  
Antiguo 29/05/2008, 12:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda pls

Cita:
Iniciado por xsmilex83 Ver Mensaje
Hola necesito que me digais como puedo hacer en visual basic para sumar 1 al valor que contiene una direccion de memoria es decir

Dim cuenta As Long
Dim cuenta1 As Long
Call ReadAlong("Warrock", &H4E45FFB, cuenta)
cuenta1 = cuenta+ 1
Call WriteAlong("Warrock", &H4E45FFB, cuenta1)

seria asi??

kiero coger el valor que contiene esta direccion 4E45FFB q es 156038

y sumarle 1 y que salga 156039

aver si podeis ayudarme Gracias por todo
Puedes hacerlo con la API (CopyMemory)
Código:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Long, pSrc As Long, ByVal ByteLen As Long)
Código:
Dim cuenta As Long
Dim cuenta1 As Long
CopyMemory cuenta, &H4E45FFB, 4 'Copiamos el contenido de la memoria a cuenta
cuenta1 = cuenta + 1
CopyMemory &H4E45FFB, cuenta1, 4 'Copiamos el contenido de cuenta1 al puntero de memoria
Por favor, no uses esa clase de temas que no especifican la duda. ('Ayuda pls')
(Véase http://www.forosdelweb.com/f69/antes...a-esto-260690/)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Última edición por David; 29/05/2008 a las 12:15
  #3 (permalink)  
Antiguo 29/05/2008, 13:46
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

Cita:
CopyMemory cuenta, &H4E45FFB, 4 'Copiamos el contenido de la memoria a cuenta
cuenta1 = cuenta + 1
CopyMemory &H4E45FFB, cuenta1, 4
podrias explicarmelo un pokillo mejor esq me lio no se que singnifica el 4 y luego quiero poner el resultado como seria:

Call WriteAlong("Warrock", cuenta, cuenta1)...
  #4 (permalink)  
Antiguo 29/05/2008, 13:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Ayuda pls

Cita:
Iniciado por xsmilex83 Ver Mensaje
podrias explicarmelo un pokillo mejor esq me lio no se que singnifica el 4 y luego quiero poner el resultado como seria:

Call WriteAlong("Warrock", cuenta, cuenta1)...
¿Qué parte del código no has entendido?:
Código:
' Definimos las variables
Dim cuenta As Long
Dim cuenta1 As Long
'Copiamos en 'cuenta' a partir del puntero de memoria &H4E45FFB 4 bytes (Long)
CopyMemory cuenta, &H4E45FFB, 4
'sumamos 1 a 'cuenta' y almacenamos en 'cuenta1'
cuenta1 = cuenta + 1
'Copiamos el contenido de cuenta1 al puntero de memoria &H4E45FFB
CopyMemory &H4E45FFB, cuenta1, 4 
P.S.: ¿Qué es WriteALong?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 29/05/2008, 13:57
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

Ok ok eso ya lo entiendo muchas gracias pero como lo devuelvo ya sumado

algo asi?

Call WriteAlong("Warrock", &H4E45FFB, cuenta1)
  #6 (permalink)  
Antiguo 29/05/2008, 13:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Ayuda pls

Cita:
Iniciado por xsmilex83 Ver Mensaje
Ok ok eso ya lo entiendo muchas gracias pero como lo devuelvo ya sumado

algo asi?

Call WriteAlong("Warrock", &H4E45FFB, cuenta1)
En esta última línea devolvemos al mismo puntero de memoria lo ya sumado:
Código:
 
'Copiamos el contenido de cuenta1 al puntero de memoria &H4E45FFB
CopyMemory &H4E45FFB, cuenta1, 4
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 29/05/2008, 14:02
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

Perdona por el follo entonces ya lo pasaria no no hay que poner nada mas no?
  #8 (permalink)  
Antiguo 29/05/2008, 14:05
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

Código:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Long, pSrc As Long, ByVal ByteLen As Long)
No seria asi? es la ultima duda que tengo

Código:
Public Declare Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Long, pSrc As Long, ByVal ByteLen As Long)
  #9 (permalink)  
Antiguo 29/05/2008, 14:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Ayuda pls

Cita:
Iniciado por xsmilex83 Ver Mensaje
Código:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Long, pSrc As Long, ByVal ByteLen As Long)
No seria asi? es la ultima duda que tengo

Código:
Public Declare Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Long, pSrc As Long, ByVal ByteLen As Long)
Eso depende, si vas a utilizar en una ventana debe ser Private (Privado), pero si quieres ponerlo en un módulo puedes optar por ponerlo Public (podrá ser utilizado desde cualquier módulo) o Private (solo podrá ser usado en el módulo donde esté declarado).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 29/05/2008, 14:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

ok ya entiendo es como las declaraciones globales y las otras okok thx..

pero ahora me da fallo en ((CopyMemory)) &H4E45FFB, cuenta1, 4

no sera call CopyMemory &H4E45FFB, cuenta1, 4? la declare en el modulo en la parte de 'API Declaration asi

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Long, pSrc As Long, ByVal ByteLen As Long)

pero me falla por que puede ser?
  #11 (permalink)  
Antiguo 29/05/2008, 14:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Ayuda pls

Cita:
Iniciado por xsmilex83 Ver Mensaje
ok ya entiendo es como las declaraciones globales y las otras okok thx..

pero ahora me da fallo en ((CopyMemory)) &H4E45FFB, cuenta1, 4

no sera call CopyMemory &H4E45FFB, cuenta1, 4? la declare en el modulo en la parte de 'API Declaration asi

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Long, pSrc As Long, ByVal ByteLen As Long)

pero me falla por que puede ser?
¿Cuál es el error que te da?

P.S.: no necesariamente debes poner call. Otra pregunta, ¿De dónde sacaste esa dirección de memoria?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 29/05/2008, 14:21
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

El fallo ya lo arregle lo que pasa esq no cambia la memoria a un numero mas q es lo que yo quiero simplemente se cierra por que es?

alfinal puse este codigo ya terminado utilizo check box y dos relojes

primer roloj

Código:
If Check28.Value = 1 Then Timer56.Interval = 1
If Check28.Value = 0 Then Timer56.Interval = 0
y el segundo el codigo que estoy desarrollando que parece que le falta algo devolver el valor con algun call o algo:

Código:
Private Sub Timer56_Timer()
Dim cuenta As Long
Dim cuenta1 As Long
Call ReadAlong("Warrock", &H4E45FFB, cuenta)
'Copiamos en 'cuenta' a partir del puntero de memoria &H4E45FFB 4 bytes (Long)
CopyMemory cuenta, &H4E45FFB, 4
'sumamos 1 a 'cuenta' y almacenamos en 'cuenta1'
cuenta1 = cuenta + 1
'Copiamos el contenido de cuenta1 al puntero de memoria &H4E45FFB
CopyMemory &H4E45FFB, cuenta1, 4
Call WriteAlong("Warrock", &H4E45FFB, cuenta1)
End Sub
Nota la memoria la saque de un emulador de la Mamen que ha hecho uno,y para conseguir que me acepte otros juegos que uno dice q asi funciona pero a el si le funciona pero mi codigo tiene que fallar en algo

Última edición por xsmilex83; 29/05/2008 a las 14:27
  #13 (permalink)  
Antiguo 29/05/2008, 14:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Ayuda pls

Intenta ejecutar paso a paso y mira qué valor te está devolviendo en 'cuenta' al copiar la dirección de memoria en cuestión.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 29/05/2008, 14:29
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

Código:
Private Sub Timer56_Timer()
Dim cuenta As Long
Dim cuenta1 As Long
Call ReadAlong("Warr", &H4E45FFB, cuenta)
'Copiamos en 'cuenta' a partir del puntero de memoria &H4E45FFB 4 bytes (Long)
CopyMemory cuenta, &H4E45FFB, 4
'sumamos 1 a 'cuenta' y almacenamos en 'cuenta1'
cuenta1 = cuenta + 1
'Copiamos el contenido de cuenta1 al puntero de memoria &H4E45FFB
CopyMemory &H4E45FFB, cuenta1, 4
Call WriteAlong("Warr", &H4E45FFB, cuenta1)
End Sub
esque tiene que ir para el proceso warr pero no veo mucho sentido a esto ultimo que le puse... xD
  #15 (permalink)  
Antiguo 29/05/2008, 14:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Ayuda pls

Si es un puntero de memoria válido, no creo que tengas que poner el nombre del proceso, ya que lo que haces es manejar directamente la memoria. Ahora, tal vez el valor que tienes sea otra cosa y no un puntero de memoria.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #16 (permalink)  
Antiguo 29/05/2008, 14:42
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

esque creo que no es un puntero de memoria es solo una direccion de memoria...

me toy liando xD
  #17 (permalink)  
Antiguo 29/05/2008, 15:08
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

weno gracias por la ayuda manian posteare a eso de las 5 o 6 de la tarde aver si puedes seguir ayudandome thx
  #18 (permalink)  
Antiguo 30/05/2008, 06:20
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

oye mira aquello ya lo solucione, pero ahora quiero hacer otra cosilla, quiero meter la direccion de memoria que sale de esto: (pbcl.dll + &H55FFB) en una variable como lo hago ejemplo:

Código:
Dim variable As Long
variable = pbcl.dll + &H55FFB
pero me da fallo como seria.

PD: esa especie de puntero lo que hace es ir directamente a una zona de la dll y buscar una direccion de memoria parecida a esta 054C5FFB pero esta memoria aveces cambia pero el puntero pbcl.dll + &H55FFB logicamente apunta siempre al mismo sitio, entonces lo que quiero hacer es meter la direccion de memoria que en ese momento contiene el puntero ese a una variable cualquiera como puedo hacerlo?

El codigo que he intentado es este:

Código:
Dim variable As Long
variable = pbcl.dll + &H55FFB
Call WriteALong("Mamen", variable , Text1.Text) '----->que ponga la nueva direccion en el cuadro de texto'
Gracias por todo un saludo
  #19 (permalink)  
Antiguo 01/06/2008, 06:19
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 0
Respuesta: Ayuda pls

ayuda pls ..........................
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:49.