IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Считывание данных с другой проги. Как? (http://www.imho.ws/showthread.php?t=49092)

serg472 20.01.2004 05:53

Считывание данных с другой проги. Как?
 
Помогите разобраться, пожалуйста.

Нужно сделать следующее - запускается игрушка под виндовс, мне нужно запустить свое приложение (ориентировочно на VB) и считывать определенное текстовое поле с окна игры.

Просто напишите, пожалуйста, саму идею - каким способом это можно организовать? Можно ли обойтись WIN API или нужно както считывать значения памяти? Может какието дополнительные проги нужно установить чтобы увидеть что там внутри этой игры делается?

У меня нет даже и приблизительно никаких идей как это все реализовать :( Мне хотьбы понять где нужно искать...

Alex_by 20.01.2004 11:12

можно получить дескриптор окна HWND, а потом чо-то делать. Можно проверять где эта прога в памяти себя хранит и там искать. Но я думаю у тебя немножко другая ситуация и это не пройдёт. Может быть тебе надо что вроде ArtMoney :)

serg472 21.01.2004 03:45

:)
Нет, мне не нужно сделать себе бессмертие или чтото типа того. Как раз наоборот, хочу сделать античит.

Мне нужно просто вытягивать себе имена игроков из комнаты онлайн игры. Игрушка NFSU.

Вопросы:
1. Если я получу дескриптор окна, можно ли будет затем вытягивать надписи на окне ? (если предположить что они используют стандартные компоненты типа button, label,...)

2. Если придется возится с памятью, то как узнать где именно хранится нужное мне значение? И ведь мне нужно будет это делать не один раз, а адреса ведь будут менятся постоянно...

IPv6 28.01.2004 05:14

Цитата:

Первоначальное сообщение от serg472
:)
Нет, мне не нужно сделать себе бессмертие или чтото типа того. Как раз наоборот, хочу сделать античит.

Мне нужно просто вытягивать себе имена игроков из комнаты онлайн игры. Игрушка NFSU.

Вопросы:
1. Если я получу дескриптор окна, можно ли будет затем вытягивать надписи на окне ? (если предположить что они используют стандартные компоненты типа button, label,...)

2. Если придется возится с памятью, то как узнать где именно хранится нужное мне значение? И ведь мне нужно будет это делать не один раз, а адреса ведь будут менятся постоянно...

ты сначала узнай - если игра работает на директ иксе, то никаких хендлов там нет и полей ввода в общем понимании также

Makc 28.01.2004 11:02

serg472
Берешь ArtMoney или Detectiv Story и ищешь нужные имена как текст. Потом смотришь, постоянные ли у этих полей адреса. Если постоянные, то просто используешь метод чтения из памяти.

alexey_ma 29.01.2004 19:21

По хендлу окна текст получить можно так :

TCHAR txt[255];
//hWnd - хендл окна из которого нужен техт.
::SendMessage(hWnd,WM_GETTEXT,254,(DWORD)txt);
// txt - текст из окна или заголовок окна.
Работает для едитов, сомбо, диалогов и главних окон аппликации (возвращает заголовок окна).

Получение текста из ListCtrl, ListBox, TreeCtrl - несколько сложнее. Если нужно то напиши, я могу прислать пример.

paradoxxx 07.02.2004 18:50

Если не сложно, пришли мне пожалуйста пример....
Я как-то пытался проделать что-то подобное, текст получил, а потом посмотрел на всё это и забил!
А вообще, дело очень интересное :yees:

alexey_ma 08.02.2004 00:49

Давай адрес. Пришлю тебе код программы, я её иногда вместо Spyxx использую что - бы выяснить что можно сделать с окнами чужой аппликации. Там есть прицел, бросаешь его на какое нибудь окно и потом пытаешься что нибудь с ним сотворить. Код особо не распостраняй, я его для работы писал.
Вообще похожими методами можно не только текст получить но и например удалить в чужой программе закладку таба или елемент дерева или списка, нужно только соответствующие сообщения использовать.

paradoxxx 14.02.2004 17:00

paradox@px.pereslavl.ru
Заранее спасибо! ;)


Часовой пояс GMT +4, время: 13:12.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.