Конференция работает на сервере Netberg

Radeon.ru

Конференция Radeon.ru

Страница 1 из 1 [ Сообщений: 13 ]  Версия для печати [+]
Показать сообщения за  Поле сортировки  
Здравствуйте ! Посоветуйте пожалуйста, какую программу можно использовать для решения следующей задачи:

Есть 2 exe-файла, при этом первый екзешник (launcher) запускает второй (исполняемый файл). Если же исполняемый файл переименовать, то естественно launcher выдаст ошибку, так как не найдет запускаемую программу. А если попробывать запустить второй экзешник без помощи лаунчера, то получаем другую ошибку.

Вопрос №1: Как же все таки запустить программу с переименованным исполняемым файлом ?

Как я понимаю, тут есть 2 способа:

1) Отредактировать в лаунчере имя запускаемого файла.
2) Попытаться запустить исполняемый файл без участия лаунчера, вручную прописав все необходимые параметры коммандной строки.

Тут возникает еще несколько вопросов:

1) Каким из этих способов лучше пойти ?
2) Какой софт использовать для редактирования лаунчера ?
3) Как узнать список параметров командной строки исполняемого файла?

Заранее признателен за помощь !
1. Запускаете программу лаунчером;
2. Берёте программу ProcessExplorer и запускаете её;
3. В ProcessExplorer находите интересующую вас программу в списке запущенных процессов и дважды кликаете её. Появляется информационное окошко;
4. Там смотрите значение Command Line. Это и есть интересующие вас параметры командной строки.

Если вас же интересует именно редактирование лаунчера, то могу тоже подсказать, как это делать. Но проще ИМХО ограничиться вытягиванием параметров командной строки и созданием просто ярлыка с ними.
zhe, спасибо большое ! Сейчас попробую :)


Если вас же интересует именно редактирование лаунчера, то могу тоже подсказать, как это делать.
Подскажите пожалуйста, если не сложно, чтоб знал на будущее.
sprata, нужно просто найти строку с путём к файлу в екзешнике.

Идеальный вариант — это если длина новой строки будет совпадать с длиной старой. Тогда просто заменяете новое на старое.
Если новая строка короче старой, то забиваете оставшиеся символы нулевыми байтами. Но ни в коем случае не сдвигаете.
Если новая строка длине старой — то все гораздо сложнее. Нужно дизасемблировать программу и смотреть, куда можно вставить лишние байты. Сдвигать нельзя. Поэтому лучше переименовывайте так, чтобы были первые 2 варианта.

Чтобы заменить строки в екзешнике, пробуйте любой HEX Editor. WinHex рулит, например.
Попробовал на примере Resident Evil 5, Launcher.exe запускает RE5DX9.EXE всего лишь с одним параметром "-dx9". Сделал ярылк, прописал параметр, но при запуске вылезла та же ошибка, что и при попытке запустить экзешник без параметра(

Может быть там проверяется еще и родительский процесс ? Сейчас установлю какую-нить IDE и попробую подменить лаунчер.

Изображение

ЗЫ: а вообще все это затевается ради того, чтобы включить сглаживание в Batman: Arkham Asylum)) На демке, например, работал вот такой вот способ: заходим в папку с игрой \Eidos\Batman Arkham Asylum Demo\Binaries и переименовываем файл ShippingPC-BmGame.exe на WarGame-G4WLive.exe. После этого в CCC выставляем требуемый уровень сглаживания. Я юзал дров 9.5, тестил на XP и на Висте, все работает. В полной версии этот номер не проходит, так как игра запускается не напрямую с ShippingPC-BmGame.exe, а с помощью лаунчера. Сейчас под рукой игры нет, так что тестировать приходится на РЕ5))
Только что попробовал запускать Resient Evil 5. У меня Current Directory процесса "RE5DX9.EXE" — "C:\Windows\". А у вас, судя по скрину — папка с игрой. Попробуйте прописать в ярлыке рабочую папку C:\Windows\.

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

ПС. однако вы любитель поплясать с бубном :) А просто через Catalyst Control Center форсировать сглаживание не работает?

А просто через Catalyst Control Center форсировать сглаживание не работает?

К сожалению, нет :(
Хм, только что попробовал запустить через ярлык с прописанной папкой C:\Windows. Всё равно не работет. :( Может быть точно проверяется родительский процесс. Ещё хуже, если эти 2 процесса по консольному выводу обмениваются между собой какими-нибудь ключами.

Хм, только что попробовал запустить через ярлык с прописанной папкой C:\Windows. Всё равно не работет. :(
Угу :(

Изображение


Ещё хуже, если эти 2 процесса по консольному выводу обмениваются между собой какими-нибудь ключами.
А теоретически вообще возможно отследить переменные, которые были созданы процессом ? Или легче редактировать лаунчер?)

А теоретически вообще возможно отследить переменные, которые были созданы процессом ? Или легче редактировать лаунчер?) 

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

Но чисто чтоб поржать попробуйте скомпилировать простейший лаунчер, который будет запускать переименованный екзешник РЕ5. :) Чем чёрт не шутит, можно оно проверяет просто имя парент-процесса.

Но чисто чтоб поржать попробуйте скомпилировать простейший лаунчер, который будет запускать переименованный екзешник РЕ5
Не прокатило :(

Изображение

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   char *args[3] = { "RE5DX9.EXE", "-dx9" };
   spawnv(0, "E:/Program Files/CAPCOM/RESIDENT EVIL 5/RE5DX9.EXE", args);
}



Чтобы заменить строки в екзешнике, пробуйте любой HEX Editor. WinHex рулит, например.
zhe, спасибо большое, в RE5 все получилось, WinHex действительно рулит ! :)


Если новая строка короче старой, то забиваете оставшиеся символы нулевыми байтами. Но ни в коем случае не сдвигаете.
В Бэтмене как раз так и получается, так что надеюсь что все сработает :)


Последний раз редактировалось sprata 18:24 20.09.2009, всего редактировалось 1 раз.
Хм, вызов написан правильно. Значит там взаимодействие посложнее. Видать чем-то ещё обмениваются между собой. Рад был помочь :)
ALL

На будущее — по RE5 есть своя тема в "Играх".
Здесь вопросы по проблемам игры будут удаляться.
Новая тема    Ответить  [ Сообщений: 13 ] 


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Удалить cookies конференции

Пишите нам | Radeon.ru