ReadProcessMemory с ctypes
Я работаю над небольшим тренером solitär. Я не знаю, почему функция ReadProcessMemory не работает. Обычно он возвращает False или True, но в этом случае ничего. GetlastError () дает мне код ошибки 6.
#-*- coding: cp1252 -*-
import ctypes, win32ui, win32process ,win32api
PROCESS_ALL_ACCESS = 0x1F0FFF
HWND = win32ui.FindWindow(None,"Solitär").GetSafeHwnd()
print(HWND)
PID = win32process.GetWindowThreadProcessId(HWND)[1]
print(PID)
PROCESS = win32api.OpenProcess(PROCESS_ALL_ACCESS,0,PID).handle
rPM = ctypes.windll.kernel32.ReadProcessMemory
wPM = ctypes.windll.kernel32.WriteProcessMemory
ADDRESS1 = 0x00E97074
ADDRESS2 = ctypes.create_string_buffer(64)
pi = ctypes.pointer(ADDRESS2)
rPM(PROCESS,ADDRESS1,ADDRESS2,64,0)
print(ADDRESS2)
x=ctypes.windll.kernel32.GetLastError()
print(x)
1 ответов
Проверьте комментарий сообщества к MSDN ReadProcessMemory страница, цитата (sic):
W7 не будет запускать память процесса чтения
возможно, Вам потребуется проверить разрешения доступа для" SE_DEBUG_NAME " для токена текущих процессов. Если не включено. Включить его. Конечно, это должно быть сделано как администратор.
также полностью объявите возвращаемые типы и используйте держит PyHANDLE
объект и дескриптор остаются действительными.