Что нового

Вывод данных из памяти в Unicode

xamd

AION bot developer
Сообщения
66
Репутация
24
Задача такова: необходимо вывести определенное значение из памяти с сохранением типа Unicode (Utext[32])

_MemoryRead("0xАДРЕС", $Dll, 'что-тут-писать-в-туториале-не-нашел?')

Рассмотрю иные варианты.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 595
Репутация
938
А так?
Код:
$MyCargoStatus = (_MemoryRead($MemMyCargoStatus, $DllInformation, 'ptr'))
    If @Error Then
        MsgBox(4096, "ERROR", "Failed to read memory.")
        Exit
    EndIf

Использовал чтобы циферьки из памяти процесса выдергивать.
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
ptr - указатель при обращении к памяти + оффсету, ptr показывает, что тип данных, который мы извлекаем - pointer(указатель, то бишь)

float - число с точкой

byte - байт

char - обычные буковки.

Мне надо unicode. КАК? )
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 595
Репутация
938
хз, наверное извлечь значение и уже снаружи конвертировать его в юникод? :smile:
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
знать бы как...

если щас что-нибудь найду - отпишусь )

P.S. Belfigor: у тебя ICQ есть? Объясню зачем:
1) Ты единственный(не в обиду остальным), кто оставляет грамотные ответы на вопросы :smile:
2) Не всегда получается находится рядом с компьютером, чтобы сидеть на форуме
3) Так быстрее

Взамен обещаю выкладывать на форум грамотно оформленные темы по всем вопросам, которые я спрашиваю :smile:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 595
Репутация
938
Ну если в замен ты обещаешь выкладывать оформленные темы на форум, то читай пм, а то многие просят, обещаю, а в итоге раздел не наполняется :(
Тут кстати по мимо меня еще огромная куча умного народа в нашем разделе обитает, правда появляется крайне редко :(, я же только на еве специализируюсь, там да, там я умен
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
проблема в том, что я не могу получить char, т.к. в памяти оно как Unicode (
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
xamd [?]
я не могу получить char, т.к. в памяти оно как Unicode
Если оно в переменную возвращет wchar (юникодная строка), то оно так и должно сохраниться. А где собственно оно потом используется?
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
Код:
$enemy_name = _MemoryRead("0x"&$enemy_name, $DllInformation, 'wchar[12]')
...
GUICtrlSetData($name_mob, $enemy_name)



$name_mob - часть GUI: Label.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
xamd
Я полагаю там неверно отображается имя? а если конвертировать в ANSI предварительно (с той библиотекой по ссылке что я дал)?
 

bic

Знающий
Сообщения
46
Репутация
14
Для работы с памятью использую библиотеку NomadMemory.au3.

Читаем юникод:
Код:
$memory = _MemoryOpen($Process_PID)
$var = _MemoryRead("0x00000000", $memory, "wchar[64]")


Извлечь можно типы данных, которые есть на странице DllStructCreate.
Не забывай, юникод символ = 2 байта.
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
Я не забываю )
И во всю юзаю nomadmemory.au3

Щас попробую пошаманить.
В поле вообще ничего не отображается (
 
Автор
X

xamd

AION bot developer
Сообщения
66
Репутация
24
ошибка на моей стороне в оффсетах. Всё правильно, используется wchar
 
Верх