PDA

Показать полную графическую версию : [решено] Нужно автоматизировать установку проги с CD


TEKTON
15-11-2009, 05:25
Такая задача :
есть игра, есть ролик к ней, и патч.

Делаю так, прописываю в авторане вместо setap.ехе setap.bat
в батнике пишу

@echo off
pleer1.exe stk_cop_950x536_rus.avi ;открываю ролик
foto.jpg ;открываю картинку. Если можно так сделать чтоб картинка повисела секунд 10-15 по середине монитора потом закрылась

start pleer2.exe 384_DJRAmix.mp3 ; запускаю музычку чтоб весеелее шла установка :)
setap.exe ; установка дистрибутива


А дальше нужно создать переменную чтоб Bat после установки проги нашёл файл и переименовал его в *.exe.BAK

И после этого скопировал с CD пропатченый файл в нужную папку! Но при этом нужно учесть что программа может быть установленна не только на C:

Тоесть чтоб была переменная типа %ProgramFiles% для того чтоб батник нашёл нужную папку на диске куда установили программу и вставил этот файлик. После чего Bat закрывается.

Вот путь к папке в которой сейчас файлик xrEngine.exe лежит

F:\Program Files\GSC World Publishing\S.T.A.L.K.E.R. - Зов Припяти\bin
Пробовал делать типа
%ProgramFiles%\GSC World Publishing\S.T.A.L.K.E.R. - Зов Припяти\bin
но чет не работает :(

Всё это хочу записать на диск. Заранее спасибо !!!

NiOl
16-11-2009, 12:36
я бы начал с приобретения лицензии...

El Sanchez
16-11-2009, 18:43
TEKTON, пробуй

:: Запрещаем вывод на экран исполняемых команд
@echo off

:: Путь к игре. Можно, конечно, потом данные и из реестра вытащить, но не знаю куда игра себя пишет. Не играл.
set "InstallGameDir=%ProgramFiles%\GSC World Publishing\S.T.A.L.K.E.R. - Зов Припяти\bin"

:: Запускаем видеоролик, плеер придется ручками закрывать после просмотра
"путь к player1\player1.exe" "путь к avi-файлу\stk_cop_950x536_rus.avi"

:: Открываем foto.jpg через виндовый просмотрщик, а то вдруг jpg ассоциируется с Photoshop
start rundll32.exe shimgvw.dll,ImageView_Fullscreen путь к файлу без кавычек\foto.jpg

::Счетчик на 10 сек. и убиваем процесс с заголовком окна foto.jpg
start /b cmd /c "ping -n 10 127.0.0.1 1>nul&&taskkill /f /fi "windowtitle eq foto.jpg*""

:: Запускаем аудиофайл
start "" "путь к player2\player2.exe" "путь к аудиофайлу\384_DJRAmix.mp3"

:: Запуск установщика игры
setup.exe

:: Переименоваваем оригинальный exe-файл, в случае успеха копируем кряк в папку игры
ren "%InstallGameDir%\xrEngine.exe" xrEngine.exe.bak 1>nul&&copy /y "путь к леченому exe\xrEngine.exe" "%InstallGameDir%\xrEngine.exe"

TEKTON
16-11-2009, 23:26
Спасибо!!!

Следующий вопрос:
как создать переменную чтоб в неё заносилась буква флешки или CD ?

Надо выполнить запуск ролика с CD через коммандную строку

Чтоб типа такого было

Start mplayer2.exe %переменная содержащая букву CD%\Video\Rolik.avi


Попутный вопрос выплывающий из этого:
Как определить какому диску буква пренадлежит ? CD или Flesh ?

И ещё вопрос:
можно ли заменить файл не зная на каком он диске находится?

Ну сделать типа поиска по названию файла по всем дискам, а потом создать переменную в которую будет записываться путь до файла ?

И ещё:
Можно ли минимизировать bat файл в трей? И какими коммандами это делается?

Заранее спасибо !!!

Petya V4sechkin
17-11-2009, 10:54
как создать переменную чтоб в неё заносилась буква флешки или CD ?
Надо выполнить запуск ролика с CD через коммандную строку
Чтоб типа такого было
Код:
Start mplayer2.exe %переменная содержащая букву CD%\Video\Rolik.avi
Start mplayer2.exe %~d0\Video\Rolik.avi

TEKTON
17-11-2009, 20:38
Спасибо мужики!!!

Написал так:
CD..
Start mplay32.exe %~d0\vid\stk_cop_950x536_rus.avi
exit
Если и проигрыватель и файл находятся на CD Всё окей!!!

Но такая неприятная особеность есть:
Если файл ролика - stk_cop_950x536_rus.avi находится на CD

А запускаю его вот так:
Start mplay32.exe %~d0\vid\stk_cop_950x536_rus.avi
exit В данном случае проигрыватель рядом с bat*ом лежит
или так :

Start C:\WINDOWS\system32\mplay32.exe %~d0\vid\stk_cop_950x536_rus.avi
exit

В данном случае проигрыватель стоит на своём родном месте,

Происходит ошибка !!! :(
http://s57.radikal.ru/i157/0911/6f/089711ae2938.jpg (http://www.radikal.ru)

Как узнать имя диска CD Для того чтоб запустить видео файл (который лежит на CD)
через проигрыватель который стоит на компе???
Заранее спасибо!!!

El Sanchez
17-11-2009, 21:25
Происходит ошибка !!! »
Вместо

Start C:\WINDOWS\system32\mplay32.exe %~d0\vid\stk_cop_950x536_rus.avi
напиши

Start %SystemRoot%\system32\mplay32.exe "%~dp0vid\stk_cop_950x536_rus.avi"

TEKTON
18-11-2009, 00:33
И ещё:
Можно ли минимизировать bat файл в трей? И какими коммандами это делается? »


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

первый start.bat :

%comspec% /c start /min Untitled.bat

Второй Untitled.bat :
mplayerc.exe /fullscreen %~d0\vid\stk_cop_950x536_rus.avi
Exit

А может всётаки можно одним батом обойтись ???

El Sanchez
18-11-2009, 10:29
Можно ли минимизировать bat файл в трей? И какими коммандами это делается? »
В трей никак, только свернуть на панель задач. Можно вообще не выводить на экран консольное окно с помощью спецсредств (тема поднималась тут).
А может всётаки можно одним батом обойтись ??? »
Пример (окно, правда, мелькнет, но почти незаметно, а потом свернется на панель задач):

@echo off
if "%~1"=="hide" goto :label
start /min cmd /c %~0 hide
goto :eof
:label
команда 1
команда 2
...
команда N




© OSzone.net 2001-2012