Что нового

Чтение памяти игры с показом на экран

SeMgA

Новичок
Сообщения
47
Репутация
0
Добрый день
скажите пожалуйста у меня есть вот такой код


Код:
#include <NomadMemory.au3>

$PID = ProcessExists ( "Ragexe.exe" )
$MemoryOpen = _MemoryOpen($PID)
Func readmem()
 $Mem_Read = _MemoryRead('0x' & '00974AB0' , $MemoryOpen)
ToolTip($Mem_Read,0,0) 
sleep(100)  
   EndFunc



Код не мой я его с трудом понимаю, сам по себе адрес я нашел сам
скажите пожалуйста как можно заставить его работать так как он выдает ошибку


Код:
$Mem_Read = _MemoryRead('0x' & '00974AB0' , $MemoryOpen)
$Mem_Read = _MemoryRead('0x' & '00974AB0' , ^ ERROR


За ранее благодарен
И может быть скажет
чтоб если например, если адрес который считываем показывает число 12 то выполнялось действие
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Наверно, не найден процесс, поэтому и выдаёт ошибку
Вот готовый пример с объяснениями:

Код:
#include <NomadMemory.au3> ; подключаем библиотеку работы с памятью

If ProcessExists( "Ragexe.exe" ) = 1 Then ; проверка есть ли данный процесс, если есть, то выполняем чтение из памяти
$PID = ProcessExists( "Ragexe.exe" ) ; узнаём pid процесса
$MemoryOpen = _MemoryOpen($PID) ; открывает процесс для работы с его памятью
$Mem_Read = _MemoryRead('0x' & '00974AB0' , $MemoryOpen) ; читаем значение из адреса
ToolTip($Mem_Read,0,0) ; выводим результат в tooltip
If $Mem_Read = 12 Then ; если результат равен 12
MsgBox(64, "Test", "В результате число 12") ; Здесь действие, на данный момент это вывод сообщения
EndIf
EndIf
 
Автор
S

SeMgA

Новичок
Сообщения
47
Репутация
0
что то не хочет работать совсем
не ошибок не чего не происходит
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
SeMgA
Вероятно нет процесса среди запущенных
 
Автор
S

SeMgA

Новичок
Сообщения
47
Репутация
0
я считываю процесс или с чит енгине либо диспетчером задач
по поводу #include <NomadMemory.au3> ; подключаем библиотеку работы с памятью
тут кроме файла еще библиотека быть должна?
так как есть только файлик NomadMemory.au3
 

Findoss

Знающий
Сообщения
9
Репутация
7
_Lexa98_

Я бы ещё добавил после первого EndIf
Код:
MsgBox(48, "Результат", "Не найден процесс , или не запущен")
 
Автор
S

SeMgA

Новичок
Сообщения
47
Репутация
0
Смех смехом НО!
Код:
If ProcessExists( "Ragexe.exe" ) = 1 Then ; проверка есть ли данный процесс, если есть, то выполняем чтение из памяти

я стер данную строку и скрипт работает а с ней не хочет!
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
SeMgA
Процесс точно так называется?
 
Автор
S

SeMgA

Новичок
Сообщения
47
Репутация
0
да именно так же
я сам оч удивлен
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
для надежности лучше использовать
Код:
ProcessWait
 
Автор
S

SeMgA

Новичок
Сообщения
47
Репутация
0
я не совсем понимаю покажите пример пожалуйста
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
madmasles
По идее с английского exists это - существует
 
Автор
S

SeMgA

Новичок
Сообщения
47
Репутация
0
я попозже попробую поменять местами иф и пид
посмотрим что выйдет сейчас не получается - нет доступа к скрипту
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
_Lexa98_ [?]
По идее с английского exists это - существует
мало ли что это там с английского
открой справку и почитай, что возвращает функция ;)

SeMgA [?]
я попозже попробую поменять местами иф и пид

Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.
 
Верх