Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 21:49   #1
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
Вопрос Взаимодействие с игрой

Здравствуйте! Товарищи программисты нужна так сказать ваша помощь =)

Нужно сделать такую программку:

1)Запускаю программу
2)Захожу в игру
3)Как только началась игра, запускается таймер

Вот и всё, в принципе всё понятно кроме одного, как приложение узнает что началась игра? (видел много разных на подобие)
буду благодарен вам за оказанную помощь!
P.S Какие будут предложения?
saylar_06 вне форума Ответить с цитированием
Старый 30.05.2011, 21:56   #2
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

Ищешь handle окна с данным заголовком. И если он не равен 0, то окно есть в системе. Узнается это функцией
FindWindow(caption,name):thandle;
Вот пример использования
If findwindow('explorer',nil)<>0 then showmessage('есть окно проводника');
БЯЯЯГГАААААА

Последний раз редактировалось Leo08; 30.05.2011 в 21:58.
Leo08 вне форума Ответить с цитированием
Старый 30.05.2011, 22:01   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно еще проверять на наличие процесса с нужным именем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.05.2011, 22:28   #4
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
По умолчанию

спасибо, это я знаю =)

вы не поняли сути вопроса =)

Вот взять например игру Warcraft III, зашел я в неё (это не значит что игра началась) там далее новая игра создать игру т.д люди подсоединились отсчиталось 5 секунд и загрузка игры, после же как мы появились в игре она началась, вот этот момент меня интересует когда началась игра включить таймер (ну эт к примеру) для меня главное как узнать когда началась игра?

вот нашел недавно такое приложение pingme.ru/download/naga.zip (оно знает когда игра началась)
saylar_06 вне форума Ответить с цитированием
Старый 30.05.2011, 22:30   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Добавлю, что можно сделать это без опроса. К примеру, очень удобно это делается на WMI. Только, пожалуй, для новичка это сложно будет. Для начала проще всего таймером на наличие окна игры или работающего процесса игры, но в реальных приложениях опрос лучше не использовать.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 30.05.2011, 23:32   #6
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
По умолчанию

хмм, я тут подумал, а можно будет сделать так?

при начале игры у меня ведь будут деньги, ресурсы и т.д тоесть создаются адреса в памяти? сделать проверку на наличие того или иного адреса?

а вот как сделать проверку?
saylar_06 вне форума Ответить с цитированием
Старый 30.05.2011, 23:58   #7
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

Цитата:
хмм, я тут подумал, а можно будет сделать так?

при начале игры у меня ведь будут деньги, ресурсы и т.д тоесть создаются адреса в памяти? сделать проверку на наличие того или иного адреса?

а вот как сделать проверку?
Если они статически в пространстве то можно, но современные игры располагают данные динамически, могут располагаться где угодно. Для того что бы проверить статические они или нет, воспользуйся любой ломалкой игр типа артмани. попробуй найти какой либо ресурс, выйди из игры загрузи снова и попытайся найти снова если адреса сойдутся то тогда можно привязываться.
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 31.05.2011, 10:32   #8
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
Лампочка

В общем так проверил адреса двух ресурсов по три раза, вот что получил:

Адреса одного ресурса:
0F611410
0C1D1410
097C1410

Адреса второго ресурса:
097C1490
05DE1490
05521490

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

Мне нужно будет так что если адрес найден то включи таймер, после работы таймера опять ищи адрес
saylar_06 вне форума Ответить с цитированием
Старый 31.05.2011, 16:37   #9
Swarog
Форумчанин
 
Аватар для Swarog
 
Регистрация: 26.01.2010
Сообщений: 215
По умолчанию

Забудь о данном методе, надо искать что то другое, у тебя возможно (теоретически) 32к вариантов, так что то что там будут значения всегда вероятно. если бы были совпадения полные тогда можно было бы привязываться.
Могу лишь пнуть в нужном направлении (ну или как получится)
Swarog вне форума Ответить с цитированием
Старый 31.05.2011, 23:17   #10
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
По умолчанию

Цитата:
Сообщение от Swarog Посмотреть сообщение
Забудь о данном методе, надо искать что то другое, у тебя возможно (теоретически) 32к вариантов, так что то что там будут значения всегда вероятно. если бы были совпадения полные тогда можно было бы привязываться.
нуууу таааак... а что вы предлагаете? Просто (знаю что это не отмазка) я только учусь, и совершенно сбит с толку =(
saylar_06 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с игрой незнайка_на_земле Свободное общение 3 16.02.2011 19:34
нужна помошь с игрой FullVenic Помощь студентам 0 28.07.2010 18:47
Взаимодействие с онлайн игрой Niklan Общие вопросы Delphi 7 14.11.2009 12:35
Помогите с игрой на JAVA kukuru2nik Помощь студентам 0 05.05.2009 22:54
Помогите с игрой Titan123 Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 30.06.2008 15:42