Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> API ReadProcessMemory, помогите понять 
:(
    Опции темы
KrotOnline
Дата 27.10.2010, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 15.12.2007

Репутация: нет
Всего: нет



Код

ReadProcessMemory pHandle, &H489FF4, str, 4, 0&

Необходимо вытащить числовое значение переменной.
С функцией разобрался, только не пойму как преобразовать str в число(значение меняется от 1 до 1400000)
Подскажите?
PM MAIL   Вверх
BorisVorontsov
Дата 27.10.2010, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 5
Всего: 10



Зачем использовать строку для чтения числа? Или число представлено строкой?
Преобразование строки в число в VB вообще происходит неявно, есть и явное преобразование, посредством Val или C_type_


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
KrotOnline
Дата 28.10.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 15.12.2007

Репутация: нет
Всего: нет



Может я или меня не правильно поняли. 
Картина такая, ведет расчет программа, исходников к ней нет, но от нее мне необходима числовая переменная, чтоб ее можно было дальше обработать. Нашол в памяти адрес где хранится она, получил в вб-форме результат.(другой идеи не нашлось как вырвать переменную из посторонней программы). 
Возникла следующая проблема. А если переменная будет не целочисленная: как найти адрес в памяти где она хранится, как преобразовать в читаемый вид.

PM MAIL   Вверх
Akina
Дата 28.10.2010, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Вместо (или после - так даже лучше) ReadProcessMemory используй CopyMemory в заранее подготовленную (зарезервированную) VB-переменную правильного типа. А потом сразу бери значение из этой переменной.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
BorisVorontsov
Дата 28.10.2010, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 5
Всего: 10



Цитата(KrotOnline @  28.10.2010,  08:58 Найти цитируемый пост)
А если переменная будет не целочисленная: как найти адрес в памяти где она хранится, как преобразовать в читаемый вид.

То есть, целочисленные ты находить умеешь, а теперь тебе надо найти переменные строковые, и ты не знаешь, как это сделать? А причем здесь первый вопрос тогда, о преобразовании строки в число?


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
KrotOnline
Дата 28.10.2010, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 15.12.2007

Репутация: нет
Всего: нет



Akina, в точку, то что надо.
BorisVorontsov, возможно тебя смущает 
Цитата
str в число
 Так обозвал переменную. Строковые переменные не нужны.
А вот с вопросом
Цитата

А если переменная будет не целочисленная: как найти адрес в памяти где она хранится

непойму
PM MAIL   Вверх
BorisVorontsov
Дата 28.10.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 5
Всего: 10



lstrcmpi?


--------------------
[code=cpp]
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;
[/code]
PM MAIL ICQ GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1080 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.