Пример из статьи не рабочий! Предоставлю рабочий код:
| Код | 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 Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAdress As Any, ByVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Sub Form_Load() Dim hW As Long, PId As Long, hP As Long, buf As Long, dot As Long hW = FindWindow(vbNullString, "имя окHа") Call GetWindowThreadProcessId(hW, PId)
Call ReadProcessMemory(hP, &H16й адрес, VarPtr(buf), 4, 0&) 'чтеHие
MsgBox buf
Call WriteProcessMemory(hP, &H16й адрес, "зHачеHие", 4, 0&) 'запись Call CloseHandle(hP) Unload Me End Sub
|
|