26

Re: AHK: Запись строки в память

Формально расширение исполняемого файла может быть любым:

FileCopy %windir%\notepad.exe, *.txt
ComObjCreate("WScript.Shell").Exec("notepad.txt")
FileCopy %windir%\notepad.exe, *.unknown_extension
Run notepad.unknown_extension

Второй случай будет работать и из командной строки.

27

Re: AHK: Запись строки в память

wisgest пишет:
FileCopy %windir%\notepad.exe, *.txt

Так не работает, особенно учитывая, что встроенной переменной windir в AHK не существует. Но даже если переименовать notepad.exe в notepad.txt, на Windows 10 ни первый способ, ни второй не работает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

28

Re: AHK: Запись строки в память

teadrinker пишет:

встроенной переменной windir в AHK не существует.

Но ведь и

#NoEnv

не указана.

29

Re: AHK: Запись строки в память

На Win7 работает.

30

Re: AHK: Запись строки в память

wisgest пишет:

Но ведь и

#NoEnv

не указана.

А, точно, просто запускал не сохраняя в файл через Shell.Exec. Ну всё равно, на 10 не работает даже, если просто notepad.exe переместить в другую папку.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

31

Re: AHK: Запись строки в память

А вот скомпилированный AHK-файл с изменённым расширением запустился и первым, и вторым способом, с соответствующим названием процесса в диспетчере задач.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

32

Re: AHK: Запись строки в память

teadrinker Для записи числа в память я использовал Ваш код. Он прекрасно работает для конкретного адреса, но после перезапуска процесса адрес меняется. Его можно узнать средствами AHK не используя CheatEngine, зная указатели?

33

Re: AHK: Запись строки в память

Не совсем понял вопрос. Какие указатели Вы имеете в виду?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

34

Re: AHK: Запись строки в память

В программе CheatEngine чтоб не икать каждый раз новый адрес после перезагрузки процесса, существуют указатели. Они сохраняются в таблице программы. Этот указатель ищет новый адрес строки. Вот и хочу узнать, можно ли средствами AHK находить указатели, зная все показатели смещения.

35

Re: AHK: Запись строки в память

Ну вот, раньше были непонятные указатели, а теперь ещё показатели добавились.
Думаю, что можно, но понимаю о чём идёт речь лишь примерно, с CheatEngine никогда не имел дела.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

36

Re: AHK: Запись строки в память

Vicoriyan, указатели, как правило, содержат базовый адрес от которого начинается структура данных, а смещения от него, содержат адреса значений этой структуры, которые Вы ищете для манипуляций. Насколько могу судить по своей скромной практике, именно смещения последовательно находятся следуя от базового адреса, а не наоборот, так что если они вам известны, то Вы вероятнее всего знаете и базовый адрес. Исключением может быть ситуация, в которой адресное пространство было изменено очередным апдейтом софта, в котором происходит поиск, тогда новые данные вымещают начала структур старых данных, сдвигая их вверх или вниз и если последние не подвергались изменениям в ходе обновления, то часто бывает, что смещения остаются прежними.

teadrinker, наверное в этом и есть суть вопроса - зная смещения, найти базовый адрес. И хотя в том же CheatEngine этот поиск не занимает больше минуты, возвращая за очень редким исключением больше одного результата, было бы интересно узнать альтернативу.

37

Re: AHK: Запись строки в память

Не, всё равно не понимаю, что именно нужно искать, и по каким признакам.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

38

Re: AHK: Запись строки в память

KusochekDobra пишет:

наверное в этом и есть суть вопроса - зная смещения, найти базовый адрес.

Зная расстояние между домами, определить их адрес? Как это возможно?

39

Re: AHK: Запись строки в память

Если дома на одной улице и расстояние м/у соседними домами одинаковое, то можно.

40

Re: AHK: Запись строки в память

Как-то вы рассуждаете, не как программисты.
Если набор смещений уникален, он отождествляется одним адресом, если нет, некоторым количеством, а не со всеми сразу. Количество памяти выделенное процессу не в планетарных масштабах. Если было известно старое значение, область поиска можно сузить. Зная всё это и значение, которое расположено по пути смещений, тот же CheatEngine успешно совершает процедуру поиска. Значит - это возможно.

41

Re: AHK: Запись строки в память

Ну, если известны значения членов структуры, тогда можно найти, конечно.