Показать полную графическую версию : Вопросы По WPI
DenchikK
27-03-2005, 06:43
Та же история. Проявилась после добавления в WPI тяжёлых программ:
Office, Corel, Photoshop, PageMaker и проч. Причём, если ставить
только одну из таких прог, проблемы не возникает. Как обойти, пока не
понял.
Sanja Alone
Напрямую запускать последнюю версию нельзя. В комплекте идет WPI.bat, который копирует шрифты и патчит реестр. Вот его и запускай. Кроме того его придется его исправить, если каталог WPI находится на CD.
echo Make WPI driectory the current directory
for /F "delims=: tokens=1" %%i in ("%WPIPATH%") DO echo %%i:
cd /d "%WPIPATH%"
Sanja Alone
29-03-2005, 02:38
DenchikK
Точно, я тоже это заметил. Сначала все было OK. А как только добавил Sound Forge, Photoshop CS, окно и появилось. Кстати, и в своем втором тезисе ты прав - когда у меня ставился один Office2003 окно отсутствовало. Где-то автор WPI явно намудрил...
--------------------------
VelDmi
Напрямую запускать последнюю версию нельзя.Я бы не заявлял так категорично "нельзя". Как говорил в КПИ мой препод по черчению: "Можна, але не рекомендовано..."
Хотя, там вроде ничего такого важного не делается (конечно, если не оставлять директорию WPI на CD).
...Кроме того его придется его исправить, если каталог WPI находится на CD.
Похоже, автор WPI считает, что для этого нужно нечто другое:REM Determine the WPI startup path.
REM If WPI should run off the CD the replace %dp0 with %CDROM%\PathToWPI
set WPIPATH=%~dp0
echo WPI will run from %WPIPATH%
Но здесь прав ты. Только с ключем /d, при смене директории начинает работать запуск WPI с CD.
Кстати, результатом выполнения строки:for /F "delims=: tokens=1" %%i in ("%WPIPATH%") DO echo %%i:является бессмысленный вывод на экран буквы CD-рома с двоеточием. Можно эту строку закомментировать - ничего ведь не изменится :-)
--------------------------
to ALL
Ладно, это все уточнения.
Сейчас опишу, как я сделал, чтобы не нужно было копировать на винт ни одного файла WPI при автоустановке.
Итак:1. Скачиваем масенький файлик (35 328 байт) - утилка, задающая системные переменные:
ftp://barnyard.syr.edu/pub/vefatica/setenv.exe
Это необязательно, т.к. на шаге 2 можно внести в реестр соотв. изменения с пом. команды REG ADD .... Просто утилка удобнее в использовании.
2. Добавляем в cmdlines.txt запуск батника, задающего переменную %cdrom%:
[COMMANDS]
"useraccounts.cmd"
"prep_env.cmd"
"REGEDIT /S regtweaks.reg"
это prep_env.cmd:
@echo off
cmdow @ /HID
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set inst_cd=%%i:
setenv -m cdrom %inst_cd%
exit
Ес-но, setenv.exe и prep_env.cmd должны лежать рядом с cmdlines.txt.
3. В winnt.sif поправляем вызов WPI:
[GuiRunOnce]
"%cdrom%\Путь_к_WPI\WPI.cmd"
Запуск сработает и без кавычек, но Мелкомягкие пишут: "You must put each command line in quotation marks".
Я думаю, что это необходимо только при наличии пробелов в пути, а Мелкософтовцы просто перестраховываются "от дурака".
4. Чтобы после установки в системе не осталась лишняя переменная, удаляем ее.
это cleanup.cmd (файл, запускаемый в конце установки приложений):
setenv -m CDROM -delete
Все.
Теперь я хочу спросить: мой cleanup.cmd должен удалять мусор установок прог и перегружать комп таким образом:...
ATTRIB -R -A -S -H "%SystemRoot%\Downloaded Installations" /S /D
ATTRIB -R -A -S -H %SystemRoot%\Installer /S /D
RD /S /Q "%SystemRoot%\Downloaded Installations"
RD /S /Q %SystemRoot%\Installer
shutdown.exe -r -f -t 30 -c "Windows XP will now restart in 30 seconds..."
(в первый каталог пихает свой установщик ACDSee, во втором оказывается под 100 Мб msi-установщиков других прог)
Но, во-первых, ничего не удаляется, а во-вторых, не выполняется перезагрузка. Пишет, что у этого пользователя нет прав для такого действия. Хотя пользователь создан с админскими правами:это useraccounts.cmd
@echo off
cmdow @ /HID
net user Me /add
net localgroup Администраторы Me /add
net accounts /maxpwage:unlimited
REGEDIT /S autologon.reg
EXIT
это autologon.reg
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"DefaultUserName"="Me"
"DefaultPassword"=""
"AutoAdminLogon"="1"
Что посоветуете по этим двум вопросам?
DenchikK
Вот так я обошел эту проблему:
config.js
prog[pn]=['Office 2003']
cmd1[pn]=['%cdrom%\\Soft\\Office2003\\Setup.cmd']
cat[pn]=['System Tools']
prog[pn]=['Photoshop CS']
cmd1[pn]=['%cdrom%\\Soft\\PhotoshopCS\\Setup2.cmd']
cat[pn]=['System Tools']
pn++
pn++
Setup.cmd
setup.exe TRANSFORMS=SETUP.MST /qb-
Setup2.cmd
setup.exe
WPI с CD я делаю так:
Добавляем в WPI.cmd ключ /d
cd /d "%WPIPATH%"
Создаем WPI_RunOnceEx.cmd помещаем в папку WPI
cmdow @ /HID
@echo off
SET CDROM=%~d0
SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
REG ADD %KEY% /V TITLE /D "WPI" /f
REG ADD %KEY%\001 /V 1 /D "%CDROM%\$OEM$\wpi\WPI.cmd" /f
exit
Добавляем в cmdlines.txt
[COMMANDS]
.\wpi\WPI_RunOnceEx.cmd
Структура файлов:
I386\
$OEM$\
$OEM$\cmdlines.txt
$OEM$\wpi\WPI.cmd
$OEM$\wpi\WPI_RunOnceEx.cmd
$OEM$\wpi\WPI.hta
Sanja Alone
Но здесь прав ты. Только с ключем /d, при смене директории начинает работать запуск WPI с CD.
Знал бы ты, что я с этим трахался целую неделю!!!
является бессмысленный вывод на экран буквы CD-рома с двоеточием.
Чего не знаю - туда не лезу. Благодаря тебе удалю за ненужностью.
Что посоветуете по этим двум вопросам?
У меня все точно так же за исключением:
autologon.reg
Windows Registry Editor Version 5.00
Вот это работает без вопросов.
RD /S /Q %systemdrive%\Drivers
del /f /q "%SystemRoot%\Auto_Run.cmd"
Когда запускается cleanup?
Sanja Alone
30-03-2005, 02:08
Это замечания к моему предыдущему сообщению:
Где-то автор WPI явно намудрил...1. Я поспешил с выводами. Тот ключик реестра, к-рый добавляет файлик WPI.reg как раз и исправляет траблу с выскакивающим окном:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Styles]
"MaxScriptStatements"=dword:ffffffffТеперь все ОК - проверил установкой всего софта со своего диске, а это на данный момент около 80 приложений (в т.ч. много "тяжелых").
2. можно сократить определение переменной %cdrom% в файле prep_env.cmd вот таким образом:
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 setenv -m cdrom %%i:
---------------------------------------------
D@nil, DenchikK
По поводу выскакивающего окна см. выше - проблему, как оказалось, решил сам автор WPI.:applause:
---------------------------------------------
D@nil
WPI с CD я делаю такТвой вариант хорош, но я хочу свободно обращаться к переменной %cdrom% из любых файлов при установке, а это возможно лишь определив ее глобально, т.е. в реестре (что и делает setenv).
---------------------------------------------
VelDmi
Чего не знаю - туда не лезу. Благодаря тебе удалю за ненужностью.Я просто почитал справку по FOR. Наверное, автор использовал эту строчку при отладке, вот она и осталась. У меня еще больше мусора в батниках обычно остается (правда закомментированного :) ).
Windows Registry Editor Version 5.00Это просто маркер, как и REGEDIT4 определяющий, что файл является файлом реестра. REGEDIT4 (CP866 или 1251 при наличии кириллических символов) использовался в Win9x. Ясное дело, NT/2k/XP наряду с ...5.00 понимает и его. Я всегда использую REGEDIT4, т.к. тогда можно редактировать такой файл в Far-е, и не нужно сохранять его в unicode-формате.
Проблема в чем-то другом. :idontnow:
Когда запускается cleanup?Последним заданием в WPI, т.е. ordr[pn]=[999].
можно сократить определение переменной %cdrom% в файле prep_env.cmd вот таким образом:
Можно еще сократить
FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\WIN51 SET CDROM=%%d:
и еще сократить
SET CDROM=%~d0
Все это обсуждалось тут http://forum.oszone.net/showthread.php?t=46182
Sanja Alone
30-03-2005, 06:30
Vadikan
Мне было принципиально задать переменную ГЛОБАЛЬНО, а не в пределах текущей cmd-сессии. Я об этом и написал.
Но ты прав, здесь также воможно сокращение до вида:
setenv -m cdrom %~d0
DenchikK
01-04-2005, 02:06
Ура! Наконец-то всё заработало, и именно так, как я и хотел с самого
начала! Спасибо Вам большое!!!
Sanja Alone
19-04-2005, 01:20
Решилась проблема с невыполнением перезагрузки после установки приложений. Нужно было просто соотв. строку перенести в конец файла wpi.cmd (что и сделал автор WPI в новой версии 3.5 (http://mercury.walagata.com/w/kelsenellenelvian/WPI_3.5.rar)). Но, даже если аналогичным образом перенести код cleanup.cmd в wpi.cmd, он все равно не выполняется (я имею ввиду удаление мусора). Кстати, не весь мусор стоит удалять, т.к. некоторым прогам (если не всем) требуются эти msi-файлы при деинсталляции (примеры: Daemon Tools и VMWare).
И еще к вопросу о ключе /d. Автор WPI подправил код:
for /f "delims=: tokens=1" %%i in ("%wpipath%") do echo %%i:
cd "%wpipath%"
приведя его к виду:
for /f "delims=: tokens=1" %%i in ("%wpipath%") do %%i:
cd "%wpipath%"Суть изменения думаю ясна: теперь первая строка выполняет смену диска, а не вывод его буквы на экран. Хотя, проще было бы вообще удалить первую строку и впаять /d во вторую :)
cd /d "%wpipath%"
Zhiberya
29-04-2005, 04:56
Пытаюсь настроить wpi 3.5.1
Прописываю все в батнике, и в wpi прописываю путь к этому батнику так:
%cdrom%\$OEM$\warez\мойбатник.cmd
При старте на виртуальной машине, выдает ошибку, и показывает якобы мой путь к файлу c добавлением лишней директории оем: %cdrom%\$OEM$\$OEM$\warez\мойбатник.cmd, что за проблема?
Zhiberya
cmdlines.txt
[COMMANDS]
.\wpi\WPI_RunOnceEx.cmd
Почитай http://oszone.net/display.php?id=2760
Sanja Alone
Но, даже если аналогичным образом перенести код cleanup.cmd в wpi.cmd, он все равно не выполняется (я имею ввиду удаление мусора).
Почему, все работает. Опиши проблему поконкретнее.
И еще к вопросу о ключе /d. Автор WPI подправил код:
Нафиг было заморачиваться то? Я про cd /d в справке прочитал, пока разбирался почему не работает.
Zhiberya
Прописываю все в батнике, и в wpi прописываю путь к этому батнику так:
А зачем? Можно сразу в wpi команды писать.
%cdrom%\$OEM$\warez\мойбатник.cmd
Лучше уж сразу %cdrom%\warez\мойбатник.cmd. Зачем тебе его копировать на винт, а затем не использовать?
VelDmi
Само по себе расположение файлов внутри $ОЕМ$ не означает их автоматического копирования на HDD во время установки. Автоматически копируются только файлы расположенные в $папках.
Sanja Alone
01-05-2005, 02:01
D@nil
[COMMANDS]
.\wpi\WPI_RunOnceEx.cmdЯ стартую WPI из winnt.sif через [GuiRunOnce], а в чем глубокий смысл такого запуска WPI? Код WPI_RunOnceEx.cmd в студию!
VelDmi
Почему, все работает. Опиши проблему поконкретнее.А что тут описывать - не удаляется и все тут. Не удалялось ни на VMWare 4.5.2.8848, ни на новой 5.0.0.13124. На реальной машине этот вариант еще не проверял (при выполнении cleanup.cmd [999]-пунктом config.js точно не работало).
Нафиг было заморачиваться то? Я про cd /d в справке прочитал, пока разбирался почему не работает.А я о чем. Парится мужик, а все гораздо проще делается. Можешь ему (а не мне) писнуть по этому поводу :)
Zhiberya
01-05-2005, 03:49
VelDmi
А зачем? Можно сразу в wpi команды писать.
Можно и так, но мне нужна возможность выбора - запускать мой батник или нет.
Проблема решилась перенесением wpi в корень диска и правкой cmdlines.txt.
Здесь кто-то интересовался проблемой - почему вместо %cdrom%\install\file.exe
WPI пытался запустить $OEM$\$1\install\wpi\install\file.exe
Я решил эту проблему так: В директории \WPI\WpiScripts есть файл
generate.js, а в нём есть функция FindCDRom,которая ищет файл WPI.ico в корне CD и т.о.
определяет букву CD. Этого WPI.ico у меня отродясь в корне CD нет. Я поменял его на WIN51,
т.е. стало if (FileExists(li[i]+'\\WIN51')). Кстати там дважды эта строчка встречается.
После этого всё стало нормально запускаться. И ещё я не использую WPI.cmd, а просто запускаю
WPI.hta и всё прекрасно работает.
Sanja Alone
02-05-2005, 01:59
Eralex
И ещё я не использую WPI.cmd, а просто запускаю WPI.hta и всё прекрасно работает.Проблемы появятся когда твой список устанавливаемых программ разрастется, или когда ты добавишь несколько "тяжелых" приложений (Office, Photoshop, Lingvo). Прочти тему с начала - это уже обсуждалось. WPI.cmd сам по себе не важен, важно то, что он добавляет в реестр. Можно запускать сразу hta-файл, но тогда первым пунктом в config.js пропиши импорт wpi.reg файла (или добавь его содержимое к своему RegTweaks.reg).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC