11.01.2013, 10:25
(
Last edited by Stepashka; 11/01/2013 at 11:09 AM.
)
На подобии API ф-ии ReadProcessMemory() оставив только необходимые параметры.
Например:
BOOL ReadGTAMemory(
_In_ LPCVOID lpBaseAddress,
_Out_ LPVOID lpBuffer,
_In_ SIZE_T nSize,
);
lpBaseAddress - адрес с которого начинается чтение
lpBuffer - принимающий буфер
nSize - количество байт для чтения
GetModuleBase() - соответственно для возможности чтения памяти dll-ок
Как вам идея?
Я имел дело с Direct3D задержка происходит как раз в момент взятия скрина с экрана и если это делать в отдельном потоке картинка получается как бы из нескольких частей разных кадров (т.е. типо вверху 1-й кадр, по середине 2-й, внизу 3-й), вот сохранение файла в отдельном потоке - другое дело. Есть еще один способ в Direct3D взять скрин без задержек, но он не всегда работает так как надо, может получится просто черный скрин. Как работает фрапс я не знаю.
Например:
BOOL ReadGTAMemory(
_In_ LPCVOID lpBaseAddress,
_Out_ LPVOID lpBuffer,
_In_ SIZE_T nSize,
);
lpBaseAddress - адрес с которого начинается чтение
lpBuffer - принимающий буфер
nSize - количество байт для чтения
GetModuleBase() - соответственно для возможности чтения памяти dll-ок
Как вам идея?
Я имел дело с Direct3D задержка происходит как раз в момент взятия скрина с экрана и если это делать в отдельном потоке картинка получается как бы из нескольких частей разных кадров (т.е. типо вверху 1-й кадр, по середине 2-й, внизу 3-й), вот сохранение файла в отдельном потоке - другое дело. Есть еще один способ в Direct3D взять скрин без задержек, но он не всегда работает так как надо, может получится просто черный скрин. Как работает фрапс я не знаю.