السلام عليكم
انا اقوم باستخدام ReadProcessMemory لقراة قيمة موجودة داخل عنوان معين فى ذاكرة برنامج اخر يعمل حتى الان الحمد لله البرنامج لا يعطى اى اخطاء لكن بدل من ان يعطينى القيمة النصية لهذا العنوان يعطينى ارقام ولا اعرف كيف اخليه يعرض القيمة النصية الحقيقة انا قمت بتحديد العنوان من خلال برنامج يبحث عن قيمة نصية داخل برنامح يعمل فى الذاكر البرنامج اسمه Quick Memory Editor ارجو ان اكون قد اوضحت اليكم الكود
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Form_load()
Text1.Text = ReadMemory(&H305644D)
End Sub
Private Function tHvnd() As Long
tHvnd = FindWindow(vbNullString, "zius")
End Function
Private Function ReadMemory(Address As Long) As Long
Dim ProcessID As Long, processHandle As Long
If tHvnd = 0 Then Exit Function
GetWindowThreadProcessId tHvnd, ProcessID
processHandle = OpenProcess(&H10, False, ProcessID)
If processHandle = 0 Then Exit Function
ReadProcessMemory processHandle, Address, ReadMemory, 4, 0&
CloseHandle processHandle
End Function
حيث انا zius هو اسم النافذة او البرنامج المراد القراة منه
و 305644D هو العنوان الذى يحتوى على القيمة النصية