
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.11.129] |
![]() |
|
Сообщ.
#1
,
|
|
|
![]() ![]() Option Explicit Private Const PROCESS_VM_READ = &H10 Private Const PROCESS_VM_WRITE = &H20 Private Const PROCESS_VM_OPERATION = &H8 Private Const PROCESS_VM = PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 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 Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Sub Form_Load() Dim hW As Long, PId As Long, hP As Long, buf As Long 'Необходимо создать для теста другую маленькую программу, которая будет просто присваивать 'четырёхбайтовой переменной какое-нибудь значение, и держать ту программу запущенной hW = FindWindow("ThunderFormDC", "Target") Call GetWindowThreadProcessId(hW, PId) hP = OpenProcess(PROCESS_VM, 0&, PId) Call ReadProcessMemory(hP, &H1AC6AC, VarPtr(buf), 4, 0&) 'вместо &H51041C может быть и другой адрес, это надо проверять MsgBox buf Call CloseHandle(hP) Unload Me End Sub |
![]() |
Сообщ.
#2
,
|
|
Код "тестовой" программы:
![]() ![]() Dim n As Long Private Sub Form_Load() n = 335577 Debug.Print VarPtr(n) 'Этот адрес нужно вписать в пример выше Me.Caption = "Target" End Sub |