| Замена файла после закрытия игры |
|
[E]lol
| Дата: Суббота, 04.09.2010, 19:27 | Сообщение # 1 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 324
Статус: Offline
|
вообщем есть апдейтер, который качает по файльно, все хорошо, но что если сам апдейтер обновляться? естественно мы не можем качать на место апдейтера, потому что он запущен качаем например в updater.tmp, а после закрытия игры копируем файл тут то и вопрос это нельзя поставить в событии закрытия игры. не скопирует, потому что нету доступа. поэтому первое что мне пришло в голову, что нужна отдельная програмка, которая после закрытия запуститься и скопирует скачаный файл, на место старого. полез С#, сделал консольку, но тут влезла другая проблема, во-первых мне нужно узнать дерикторию игры(я не знаю), во вторых файл предстовляет из себя exe а не удобный bat(с которым я не знаком) потом подумал сделать на гамаке прогу такую. но будет слишком много весить всего для одной функции то директория игры храниться в документах, к которому путь не всегда одинаковый(например у ХР - C:/Document and Settings/%user%/My Docyments, а у семёрки и висты - C:/Users/%user%/Documents), поэтому понадобиться найти функцию которая вычислит подобное. можно конечно найти относительный путь, но я не знаю как это сделать(ни на bat'e ни на C#'е, и кстати нахожу нахождение относительного путя более выгодным чем чтение из ини которая храниться извините где то в [выпилено]) я склоняюсь к тому что это будет bat, но проблема в том что хранится она будет не в директории игры, а в директории игры + /data/bla-bla.bat поэтому я и тут:3 кстати вся эта проблема возникла только из за нежелания делать инсталяционных пакетов. а может быть у вас будут другие предложения по реализации... СПАСИБО ЗА ВНИМАНИЕ И БУДУЩЕЕ СОДЕЙСТВИЕ! Не извиняю. SRes
[url=http://yemsalat.org/captiongame/highscore.php?curname=[E]lol][img]http://yemsalat.org/captiongame/images/[E]lol.png[/img][/url]
Сообщение отредактировал [E]lol - Суббота, 04.09.2010, 19:55 |
| |
| | |
|
SRes
| Дата: Суббота, 04.09.2010, 19:41 | Сообщение # 2 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Code @echo off cd../ cd../ xcopy "updater.tmp" "updater.exe" /y /q /i del "updater.tmp" cd../ - прыгает в директорию которая находится выше. Итого простейший бат файл. Можно сделать прожку и на асме, но это только против особо умных игроков, которые этот бат будут править, а вообще можно просто его создавать перед выходом из игры и запускать. P.S. Все легче, чем кажется.
Velociped Inc.
|
| |
| | |
|
[E]lol
| Дата: Суббота, 04.09.2010, 20:06 | Сообщение # 3 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 324
Статус: Offline
|
трансформировал до подобного образа: Code @echo off cd../ xcopy "tmp.exe" "update.exe" /y /q /i del "tmp.exe" но если файла update.exe не существует, то он спрашивает, директория это или файл можно это убрать?
[url=http://yemsalat.org/captiongame/highscore.php?curname=[E]lol][img]http://yemsalat.org/captiongame/images/[E]lol.png[/img][/url]
|
| |
| | |
|
SRes
| Дата: Суббота, 04.09.2010, 20:22 | Сообщение # 4 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Code @echo off cd../ copy "tmp.exe" "update.exe" del "tmp.exe"
Velociped Inc.
|
| |
| | |
|
[E]lol
| Дата: Суббота, 04.09.2010, 21:32 | Сообщение # 5 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 324
Статус: Offline
|
спасибо:3 Добавлено (04.09.2010, 21:32) --------------------------------------------- а можно что бы он выждал пару миллисекунд? а то иногда слишком резво запускается, и не удается ему совершить действие по назначению...
[url=http://yemsalat.org/captiongame/highscore.php?curname=[E]lol][img]http://yemsalat.org/captiongame/images/[E]lol.png[/img][/url]
|
| |
| | |
|
SRes
| Дата: Суббота, 04.09.2010, 22:31 | Сообщение # 6 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Code @echo off cd../ ping 1.1.1.1 -n 1 -w 100 >NUL copy "tmp.exe" "update.exe" del "tmp.exe" 100 - это кол-во миллисекунд которые cmd ждет ответ, насколько знаю 1.1.1.1 всегда будет неправильным айпишником, так что это вполне нормальная эмуляция паузы (именно команды паузы в bat нет). Добавлено (04.09.2010, 22:31) --------------------------------------------- Впрочем очень советую использовать гугл, ибо я с бат файлами никогда не работал, но составить такой "скрипт" проблем не нашел.
Velociped Inc.
|
| |
| | |
|
[E]lol
| Дата: Суббота, 04.09.2010, 22:42 | Сообщение # 7 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 324
Статус: Offline
|
спасибо за содействие, я попробую как нибудь бат изучить
[url=http://yemsalat.org/captiongame/highscore.php?curname=[E]lol][img]http://yemsalat.org/captiongame/images/[E]lol.png[/img][/url]
|
| |
| | |
|
Ninja
| Дата: Суббота, 04.09.2010, 22:43 | Сообщение # 8 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 683
Статус: Offline
|
по-моему для паузы рекомендуют 127.0.0.1 пинговать
Oh, my God! You kill Kenny! You bastard!
|
| |
| | |
|
[E]lol
| Дата: Суббота, 04.09.2010, 22:45 | Сообщение # 9 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 324
Статус: Offline
|
самого себя быстро отпингуешь наверно
[url=http://yemsalat.org/captiongame/highscore.php?curname=[E]lol][img]http://yemsalat.org/captiongame/images/[E]lol.png[/img][/url]
|
| |
| | |
|
SRes
| Дата: Суббота, 04.09.2010, 22:46 | Сообщение # 10 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Ninja,  Как ? Пинг пройдет сразу и паузы не будет. А так прога ждет пока 1.1.1.1 ответит, чего не будет ни в коем случае...
Velociped Inc.
|
| |
| | |
|
Ninja
| Дата: Воскресенье, 05.09.2010, 00:50 | Сообщение # 11 |
Хоть палкой гони
Группа: Проверенные
Сообщений: 683
Статус: Offline
|
SRes, я когда-то проверял, работало правильно, судя по всему пинг вставляет секундные паузы, и 127.0.0.1 всегда локалхост, так что надежнее будет его использовать Добавлено (05.09.2010, 00:50) --------------------------------------------- команда такая: ping 127.0.0.1 -n k k - количество секунд.
Oh, my God! You kill Kenny! You bastard!
Сообщение отредактировал Ninja - Воскресенье, 05.09.2010, 00:51 |
| |
| | |
|
SRes
| Дата: Воскресенье, 05.09.2010, 09:22 | Сообщение # 12 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Надежнее и прозрачнее юзать как раз пинг с ожиданием отклика, а так как отклик не придет - то можно спокойно использовать это как паузу...
Velociped Inc.
|
| |
| | |
|
[E]lol
| Дата: Вторник, 07.09.2010, 14:50 | Сообщение # 13 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 324
Статус: Offline
|
Code @echo off ping 1.1.1.1 -n 1 -w 100 >NUL
cd../ copy "tmp.02" "update.exe" del "tmp.02" copy "tmp.01" "RB4.exe" del "tmp.01" знаю что нужен великий гугл, но почему при трансформации кода в подобное, он отказывается перетаскивать файлы ниче не говорит, просто не перетаскивает Добавлено (07.09.2010, 14:50) --------------------------------------------- я понял в чем была проблема, как только выходит ошибка в коде, он прекращает действия, во моем случае проблема была в tmp.02, если его нету, то тогда у него проблемы возникают, причем серъёзные
[url=http://yemsalat.org/captiongame/highscore.php?curname=[E]lol][img]http://yemsalat.org/captiongame/images/[E]lol.png[/img][/url]
|
| |
| | |
|
SRes
| Дата: Вторник, 07.09.2010, 15:19 | Сообщение # 14 |
Каждый 5й пост мой
Группа: Страж
Сообщений: 2512
Статус: Offline
|
Сделай два батника, один копирует один файл, другой - другой, так проще.
Velociped Inc.
|
| |
| | |
|
[E]lol
| Дата: Среда, 15.09.2010, 21:52 | Сообщение # 15 |
Хрен заткнешь
Группа: Пользователь
Сообщений: 324
Статус: Offline
|
а как в гм подняться в корневую папку? Добавлено (11.09.2010, 21:24) --------------------------------------------- Code @echo off @ping 1.1.1.1 -n 2 -w 100 >NUL cd../ move "tmp01" "RB4.exe" как сделать следующее: при запуске батника в конце "игры"-апдейтера, он отказывается копировать а если просто запустить, то отлично работает так вот как совершить такое едйствие правильно: через execute_shell, или execute_program? и почему через оба способа, он отказывется копировать? при любой задержи перед действием, не копирует(а раньше копировал) Добавлено (15.09.2010, 21:52) --------------------------------------------- вообщем складывается такая ситуация: код вот такой: Code @echo off @ping 1.1.1.1 -n 1 -w 100 >NUL cd../ move "tmp01" "RB4.exe" pause если игра запускает его то пишет: Code The system cannot find the file specified. Press any key to continue . . . если просто запустить то: Code 1 file(s) moved. Press any key to continue . . . в чем проблема? не пойму никак.
[url=http://yemsalat.org/captiongame/highscore.php?curname=[E]lol][img]http://yemsalat.org/captiongame/images/[E]lol.png[/img][/url]
Сообщение отредактировал [E]lol - Среда, 15.09.2010, 21:53 |
| |
| |
|
|