On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 680
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток

Награды: GameCreator - Писатель!Неутомимый GameCreator!!!
ссылка на сообщение  Отправлено: 29.06.09 00:08. Заголовок: [GMaker] Работа с адресами.


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


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 13 [только новые]


Команда портала
www.GameCreating.ru


Пост N: 2380
Зарегистрирован: 23.06.06
ссылка на сообщение  Отправлено: 29.06.09 09:52. Заголовок: с какими такими адре..


с какими такими адресами?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 744
Зарегистрирован: 13.02.07
Откуда: Южная Африка, Глушь лесная
ссылка на сообщение  Отправлено: 29.06.09 14:15. Заголовок: хмм, а просто писать..


хмм, а просто писать переменную в ини фаил? а потом чтобы вторая прога ее читала

priguchi.narod2.ru мой скромный сайтец) Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 683
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток

Награды: GameCreator - Писатель!Неутомимый GameCreator!!!
ссылка на сообщение  Отправлено: 29.06.09 14:27. Заголовок: Ban Forever пишет: ..


Ban Forever пишет:

 цитата:
с какими такими адресами?


Адресами в памяти.

sanchez пишет:

 цитата:
а просто писать переменную в ини фаил?


Как вариант плох..но вариант..

Еще как вариант через функции мультиплэера но тоже бред.
Нужно через адреса. либо дллка может быть какая нибудь существует.


Спасибо: 0 
ПрофильЦитата Ответить
New Art Games
дизайнер, сценарист




Пост N: 2340
Зарегистрирован: 19.09.05
Откуда: Россия

Награды: Мега GameCreator со стажем!
ссылка на сообщение  Отправлено: 29.06.09 15:21. Заголовок: zuko пишет: Адресам..


zuko пишет:

 цитата:
Адресами в памяти.


оп чтото ты загнул =)
может скажу глупость, но походу винда разделяет области памяти прог, и туда моно ток специально влезть,
по крайней мере гамак, мне кажется ,туда не влезет
хотя могу и ошибаться)

Парень бегает за девчонкой, пока она его не поймает Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 684
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток

Награды: GameCreator - Писатель!Неутомимый GameCreator!!!
ссылка на сообщение  Отправлено: 29.06.09 15:35. Заголовок: Некоторые приложения..


Некоторые приложения могут изменять память других процессов артмания например.

Вот таким образом зная адрес можно его прочесть, и использовать.
Я думаю возможно все, в том числе и в ГМ.

Если ты Женя не знаешь то блин думаю врятли дадут ответ здесь=) ладно будим дальше гуглить.


...............

вот тут на паскале код...


 цитата:
var
h2 : thandle;
j: integer;
i:cardinal;
buf : Byte;
hw: THandle;
pidw,pid:Cardinal;
str:string;
adr:cardinal;
begin
hw:= FindWindow(nil,'Безымянный -Блокнот');
pidw:= GetWindowThreadProcessId(hw,PID);
h2 := OpenProcess (PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, PID);
if h2 = 0 then exit;
ReadProcessMemory(h2,pointer($100000),@adr,4,i);
for j:=0 to 255 do
begin
ReadProcessMemory(h2,ptr(adr+j),@buf,1,i);
case buf of
32..126,192..255:str:=str+chr(buf);
end;
end;
showmessage(str);
CloseHandle(h2);


В дллку бы это сунуть=) ну и сделать это все как надо, по образцу. Чтобы дллка возвращала значение в гамак.
Флу ты можешь??



Спасибо: 0 
ПрофильЦитата Ответить
New Art Games
дизайнер, сценарист




Пост N: 2341
Зарегистрирован: 19.09.05
Откуда: Россия

Награды: Мега GameCreator со стажем!
ссылка на сообщение  Отправлено: 29.06.09 17:15. Заголовок: zuko пишет: Некотор..


zuko пишет:

 цитата:
Некоторые приложения могут изменять память других процессов артмания например.


Ev-genius пишет:

 цитата:
туда моно ток специально влезть


угумс, я об этом и говорил, мне кажется гм всёже не сможет влезть в память стандартными средствами, разве что вот и писать дллку.
ещё антивирусы отлавливают врезку)
кстати такие функции типа ReadProcessMemory походу тоже юзаются с подключением чегото нестандартного

но что если попробовать запусть просто программу с параметрами? параметры в прогу обычно пишутся через тире (-)
наверное многие кто играл в контру халфу знают что иногда если нужна консолька а её нет, то запускаем програаму с параметром -console
что если и тебе запускать программу с параметрами?
кстати гамак на сколько я знаю может запускать проги с аргументами, вроде те аргументы о которых я говорил
попробуй поискать инфу по функции
execute_program(prog,arg,wait) Выполнять программу prog с аргументами arg. wait - указывает ожидания перед завершением.
вдруг оно?

хотя это непойдёт, если менять переменные нужно будет несколько раз в процессе работы самого приложения

Парень бегает за девчонкой, пока она его не поймает Спасибо: 0 
ПрофильЦитата Ответить
Команда портала
www.GameCreating.ru


Пост N: 2383
Зарегистрирован: 23.06.06
ссылка на сообщение  Отправлено: 29.06.09 17:42. Заголовок: ой блин ну ладно, по..


ой блин
ну ладно, поскольку никто не ориентируется в вопросе, небольшой ликбез:

программы внутри ОС оперируют адресацией по смещению, т.е. у программы есть только относительный адрес тех или иных данных, реальный адрес подсовывает ОС. есть некоторые программы(ну, всем известна Artmoney, я надеюсь), которые "влезают" в чужое адресное пространство. Хорошая ОС это пресекает(ну или антивирус, если ОС не такая хорошая). В любом случае, использовать подобный метод - это неправильно и неоптимально. В конечном итоге, никто не будет гарантировать его работу.

Для обмена информацией между двумя и более приложениями давно уже изобретено немало механизмов синхронизации. Тот же файл - почему бы и нет? Но файл - это медленно и плохо для диска. БД, кеш - это всё используется в веб-программировании, на клиентской стороне не так актуально. В клиентском программировании лучше всего использовать сокеты. Тип данных определяете сами. Это может быть XML, Json или что-нить подобное, а может быть и нечто совсем иное, это уже ваше личное дело, как эту информацию собирать и как потом разбирать.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 745
Зарегистрирован: 13.02.07
Откуда: Южная Африка, Глушь лесная
ссылка на сообщение  Отправлено: 29.06.09 18:24. Заголовок: я конечно хз, но как..


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

priguchi.narod2.ru мой скромный сайтец) Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 685
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток

Награды: GameCreator - Писатель!Неутомимый GameCreator!!!
ссылка на сообщение  Отправлено: 29.06.09 20:03. Заголовок: Ev-genius пишет: ещ..


Ev-genius пишет:

 цитата:
ещё антивирусы отлавливают врезку)


Да это не волнует.. надо- отключим..

Ev-genius пишет:

 цитата:
менять переменные нужно будет несколько раз в процессе работы самого приложения


Именно.

Ban Forever
Сокеты.
Хм, я почемуто думал что это не вариант. Ну во первых функции подключения, отправка получение пакетов итд.

Про вариант с адресами читал на одном форуме, там люди писали сервер на ВоВ. Люди не тупые. Так вот, Там был Реалмсервер.exe и Ворлдсервер.exe и эти 2 приложения между собой обменивались посредством чтения адресов.
Люди активно использывали артманию для получения оных.
Мне тоже стал интересен данный способ передачи переменных.
Ну и плюсы-минусы как следует рассмотреть.

sanchez пишет:

 цитата:
даже в том же арт мани адрес изменяется

Не всегда.. И не во всех приложениях.

sanchez пишет:

 цитата:
на гамаке лучше сильно не извращаться


Что поделать, извращенец я =), и заметь еще не самый искустный=)

sanchez пишет:

 цитата:
а что ты хочешь этим сделать, если не секрет?



Мини аналог - Реалмсервер.exe, Ворлдсервер.exe.
Подключение к реалмсерверу, передача плэера в ворлдсервер.



Спасибо: 0 
ПрофильЦитата Ответить
Команда портала
www.GameCreating.ru


Пост N: 2385
Зарегистрирован: 23.06.06
ссылка на сообщение  Отправлено: 30.06.09 01:23. Заголовок: zuko пишет: Сокеты...


zuko пишет:

 цитата:
Сокеты.
Хм, я почемуто думал что это не вариант. Ну во первых функции подключения, отправка получение пакетов итд.


весь цивилизованный мир так делает
собственно, оно для этого и предназначено
zuko пишет:

 цитата:
Про вариант с адресами читал на одном форуме, там люди писали сервер на ВоВ. Люди не тупые. Так вот, Там был Реалмсервер.exe и Ворлдсервер.exe и эти 2 приложения между собой обменивались посредством чтения адресов.


вот это им вообще зачем, интересно? для увеличения производительности?
не, чего греха таить, я тоже раньше думал, что так было бы прикольно. Вообще, было бы классно иметь общее глобальное пространство имён...
но есть одно НО: синхронизация.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 687
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток

Награды: GameCreator - Писатель!Неутомимый GameCreator!!!
ссылка на сообщение  Отправлено: 30.06.09 02:49. Заголовок: Ban Forever пишет: ..


Ban Forever пишет:

 цитата:
для увеличения производительности?


Вот вот. и мне интересно, сильно это на производительность влияет.

Бан а ты так делал? Ну, пробывал данный способ?

Ban Forever пишет:

 цитата:
было бы классно иметь общее глобальное пространство имён...


ну тогда бы возникла проблема с другими приложениями, хотя, мож быть я не так думаю=)

Ban Forever пишет:

 цитата:
но есть одно НО: синхронизация.


Немного непонятна конечно данная теория


Спасибо: 0 
ПрофильЦитата Ответить
Команда портала
www.GameCreating.ru


Пост N: 2387
Зарегистрирован: 23.06.06
ссылка на сообщение  Отправлено: 30.06.09 08:26. Заголовок: zuko пишет: Бан а т..


zuko пишет:

 цитата:
Бан а ты так делал? Ну, пробывал данный способ?


какой именно? адресовать чужое пространство? не, я, конечно, извращенец, но не до такой степени, чтобы страдать подобной хренью. Тем более, что реально использовать это потом нельзя будет по-нормальному.
zuko пишет:

 цитата:
Вот вот. и мне интересно, сильно это на производительность влияет.


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

zuko пишет:

 цитата:
Немного непонятна конечно данная теория


тут всё просто.
Допустим, есть два приложения: (1) и (2). Они должны обмениваться какими-то данными. По-нормальному, в самом общем виде, это выглядит так: приложение (1) открывает сокет и слушает его. Приложение (2) в какой-то момент посылает данные на этот заранее обговоренный сокет. Приложение (1) принимает данные и отсылает (2) свой ответ. Это в самом общем виде. И это лишь один из вариантов. сть ещё вариант обмена инфой через "трубы" (pipes), в общем-то примерно то же самое, только приложения обязательно должны быть локальны(сокеты - это сетевой интерфейс, поэтому такую модель можно разнести на разные машины, в программировании разницы не будет фактически никакой) и приложения должны быть изначально "связаны", например, одно приложение должно запускать другое.
В такой модели с адресами, даже если предположить, что нет никаких проблем с самой адресацией(мы точно знаем, по какому адреу нужная информация), то в любом случае есть проблема с синхронизацией. Допустим, приложению (1) надо передать данные приложению (2). Как это сделать? "Вторгнуться" в адресное пространство (1) и записать новые значения переменных? А (1) в это время с этими переменными работает. И скорее всего где-нибудь просто выдаст что-нибудь типа "ошибка деления на 0". Как вариант. Или перезапишет что-нибудь из этих переменых своим новым значением(переменная была в работе, получено новое значение, следующее действие - записать его). А когда у тебя современный процессор. у которого далеко не одно ядро, всё становится ещё сложнее.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 690
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток

Награды: GameCreator - Писатель!Неутомимый GameCreator!!!
ссылка на сообщение  Отправлено: 30.06.09 14:48. Заголовок: Ладно бан спасибо уб..


Ладно бан спасибо убедил. Впредь будем умнее.
Тему можно закрывать.


Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет