|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Вопросы По WPI
|
|
Старожил Сообщения: 288 |
![]() Windows Post Install Wizard (WPI) Официальный сайт WPI Официальный форум WPI на MSFN.org Обзор WPI в статье "Выбор устанавливаемых приложений" (там рассказ о старой версии, но кое-что почерпнуть можно) Для тех кто в танке: WPI не волшебная палочка и сама по тихому программы устанавливать не умееет!!! Очень внимательно читаем материалы хотя бы по этим и этой ссылкам! Полезные сообщения в теме: |
|
|
Отправлено: 03:34, 10-03-2005 |
|
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать DeleteIt
Цитата:
Открываем program.js и меняем функцию ProgsInCat() на следующее: function ProgsInCat(whichCat)
{
position="program.js";
whatfunc="ProgsInCat()";
var i, res;
res = 0;
for(i=1; prog[i]; i++)
{
if (cond[i] && cond[i][0])
if (cat[i] && cat[i]==whichCat && eval(unescape(ReplacePath(cond[i][0]).replace(/\\/g, "\\\\"))))
res++;
else;
else
if (cat[i] && cat[i]==whichCat)
res++;
}
return res;
}
function InstallOne(item,cmdName)
{
position="installer.js";
whatfunc="InstallOne()";
var cmd, ReturnCode, result;
CheckInstaller();
cmd=eval('programs['+item+'].'+cmdName);
if (cmd==null || (cmdLine=ReplacePath(cmd[0]))=='')
return;
if (cmdName=='regb' || cmdName=='rega')
{
if (!FileExists(cmdLine))
{
programs[i].fail=true;
cmdName=(cmdName=='regb') ? 'Reg Before' : (cmdName=='rega') ? 'Reg After' : cmdName;
WriteLogLine(cmdName+' *** Fail *** (File does not exist): RegEdit /S "'+cmdLine+'"');
return;
}
if (cmdLine.indexOf(" ") != -1 && cmdLine.substr(0,1) != '"')
cmdLine='"'+cmdLine+'"';
cmdLine="RegEdit /S "+cmdLine;
}
else
cmdLine=handleCommand(cmdLine);
try
{
ReturnCode=WshShell.Run(cmdLine,1,true);
result='Success';
programs[i].success=true;
}
catch(ex)
{
result='*** Fail ***';
programs[i].fail=true;
}
cmdName=(cmdName=='regb') ? 'Reg Before' : (cmdName=='rega') ? 'Reg After' : cmdName;
WriteLogLine(cmdName+' '+result+' (returned code '+ReturnCode+'): "'+cmdLine+'"');
}
function InstallOne(item,cmdName)
{
position="installer.js";
whatfunc="InstallOne()";
var cmd, ReturnCode, result;
CheckInstaller();
cmd=eval('programs['+item+'].'+cmdName);
if (cmd==null || (cmdLine=ReplacePath(cmd[0]))=='')
return;
if (cmdName=='regb' || cmdName=='rega')
{
if (!FileExists(cmdLine))
{
programs[item].fail=true;
cmdName=(cmdName=='regb') ? 'Reg Before' : (cmdName=='rega') ? 'Reg After' : cmdName;
WriteLogLine(cmdName+' *** Fail *** (File does not exist): RegEdit /S "'+cmdLine+'"');
return;
}
if (cmdLine.indexOf(" ") != -1 && cmdLine.substr(0,1) != '"')
cmdLine='"'+cmdLine+'"';
cmdLine="RegEdit /S "+cmdLine;
}
else
cmdLine=handleCommand(cmdLine);
try
{
ReturnCode=WshShell.Run(cmdLine,1,true);
result='Success';
programs[item].success=true;
}
catch(ex)
{
result='*** Fail ***';
programs[item].fail=true;
}
cmdName=(cmdName=='regb') ? 'Reg Before' : (cmdName=='rega') ? 'Reg After' : cmdName;
WriteLogLine(cmdName+' '+result+' (returned code '+ReturnCode+'): "'+cmdLine+'"');
}
for(i=0; i<programs.length && programs[i] != null && !BreakLoop; i++)
{
ce++;
programs[i].success=false;
programs[i].fail=false;
UpdateInstallList(ce,programs);
StartLogEntry(programs[i]);
InstallOne(i,'regb');
CheckInstaller();
for(j=1; j<=6 && !BreakLoop; j++)
{
InstallOne(i,'cmd'+j);
CheckInstaller();
}
CheckInstaller();
InstallOne(i,'rega');
CheckInstaller();
WriteLogLine("Finished installation");
UpdateProgressBar(Math.round((ce/programs.length)*100));
Pause(0,250);
}
for(k=0; k<programs.length && programs[k] != null && !BreakLoop; k++)
{
ce++;
programs[k].success=false;
programs[k].fail=false;
UpdateInstallList(ce,programs);
StartLogEntry(programs[k]);
InstallOne(k,'regb');
CheckInstaller();
for(j=1; j<=6 && !BreakLoop; j++)
{
InstallOne(k,'cmd'+j);
CheckInstaller();
}
CheckInstaller();
InstallOne(k,'rega');
CheckInstaller();
WriteLogLine("Finished installation");
UpdateProgressBar(Math.round((ce/programs.length)*100));
Pause(0,250);
}
|
|
|
Отправлено: 18:47, 03-08-2006 | #251 |
|
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Ok, tnhx, возьмем на заметку, правда я за это время свой скрипт с гуем успел накалякать на AutoIt.
![]() Суть такова, на стадии T12 запускаем скрипт, он с инишника считывает приложения и выводит массив чекбоксов. Для отмеченных создаются ключи в RunOnceEx. Для выбранного приложения можно запустить 2 дополнительных и импорт файла реестра. Если есть интерес - могу выложить. |
|
Отправлено: 08:05, 08-08-2006 | #252 |
|
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать DeleteIt Интерес есть. Выложи пожалуйста.
|
|
Отправлено: 13:05, 08-08-2006 | #253 |
|
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Ок, ловите, только чур ногами не больно пинать
т.к. с AutoIt знаком лишь неделю.Ограничения: т.к. скрипт запускается на стадии T12 - разрешение всего 640*480, больше 60 приложений в диалог уже трудно вместить. Это собственно скрипт: #include <Array.au3>
#include <GuiConstants.au3>
#Include <process.au3>
Opt("GUIOnEventMode", 1)
;~ Переменные используемые в скрипте:
;~ $Border - Отступ\промежуток между колонками checkbox
;~ $HOtst - отступ сверху
;~ $wicol - ширина checkbox
;~ $nrow - кол-во рядов checkbox
;~ $distr - путь к папке с дистрибутивами на CD
Dim $ns, $ps, $ks, $inifile = @ScriptDir & '\AppInstall.ini', $distr='\Soft\'
Dim $Border = 10, $HOtst = 30, $YCurr = $HOtst, $XCurr = $Border, $ncol = 3, $wicol = 190, $nrow = 20, $currrow = 1
Dim $CHB_ARRAY
Dim $CD=OsGetCD ('Win51')
Const $Key='HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx'
$cnt_sect = IniReadSectionNames($inifile)
GuiCreate("Установка приложений", 620, 460,-1, -1)
GUICtrlCreateLabel ('Выберите приложения для автоматической установки:', 100, 15)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
For $i = 1 To $cnt_sect[0]
$ns=IniRead ( $inifile, $cnt_sect[$i], "Name", "0" )
$ps=IniRead ( $inifile, $cnt_sect[$i], "Path", "0" )
If $ns <> '0' And $ps <> '0' Then
$ind=$cnt_sect[$i]
If $CHB_ARRAY=="" Then
$CHB_ARRAY=$ind
Else
$CHB_ARRAY = $CHB_ARRAY & '-' & $ind
EndIf
EndIf
Next
$CHB_ARRAY = StringSplit ($CHB_ARRAY, '-')
Dim $int = $CHB_ARRAY[0]
Dim $CH_ARRAY[$int]
For $i = 1 To UBound ($CHB_ARRAY) - 1
$ns=IniRead ( $inifile, $CHB_ARRAY[$i], "Name", "0" )
$ind = $i-1
$currrow = $currrow + 1
$CH_ARRAY[$ind] = OsCreateChBox ($ns, $XCurr, $YCurr, $wicol, 15)
$YCurr=$YCurr + 20
If $currrow > $nrow Then
$YCurr=$HOtst
$XCurr=$XCurr + $wicol + $Border
$currrow = 0
EndIf
Next
GUISetState (@SW_SHOW)
While 1
Sleep(10)
Wend
Func OsGetCD ($file)
$var = DriveGetDrive("CDROM")
If NOT @error Then
For $i = 1 to $var[0]
If FileExists ($var[$i] & '\' & $file) Then
MsgBox(4096,"Found CDROM" & $i, 'Installation CDROM Label is - ' & $var[$i] & @CRLF & 'Starting Setup.')
$CD = $var[$i]
EndIf
Next
EndIf
Return $CD
EndFunc
Func SpecialEvents ()
_RunDos('REG ADD ' & $Key & ' /V TITLE /D "Installing Applications" /f')
For $i = 0 to UBound ($CH_ARRAY) - 1
$chstate = GUICtrlRead ($CH_ARRAY[$i])
$ind = $i + 1
$ns=IniRead ( $inifile, $CHB_ARRAY[$ind], "Name", "0" )
$ps=IniRead ( $inifile, $CHB_ARRAY[$ind], "Path", "0" )
$ps2=IniRead ( $inifile, $CHB_ARRAY[$ind], "Path2", "0" )
$ps3=IniRead ( $inifile, $CHB_ARRAY[$ind], "Path3", "0" )
$reg=IniRead ( $inifile, $CHB_ARRAY[$ind], "Reg", "0" )
If StringLen ($ind) = 1 Then
$ind = '00' & $ind
Else
$ind = '0' & $ind
EndIf
If Number($chstate) = Number($GUI_CHECKED) Then
_RunDos('REG ADD ' & $Key & "\" & $ind & ' /VE /D "' & $ns & '" /f')
_RunDos('REG ADD ' & $Key & "\" & $ind & ' /V 1 /D "' & $CD & $distr & $ps & '" /f')
If $ps2 <> '0' And $ps2 <> '' Then
_RunDos('REG ADD ' & $Key & "\" & $ind & ' /V 2 /D "' & $CD & $distr & $ps2 & '" /f')
EndIf
If $ps3 <> '0' And $ps3 <> '' Then
_RunDos('REG ADD ' & $Key & "\" & $ind & ' /V 3 /D "' & $CD & $distr & $ps3 & '" /f')
EndIf
If $reg <> '0' And $reg <> '' Then
_RunDos('REG ADD ' & $Key & "\" & $ind & ' /V 4 /D "' & 'REGEDIT /S ' & $CD & $distr & $reg & '" /f')
EndIf
EndIf
Next
Exit
EndFunc
Func OsCreateChBox ( $Label, $posX, $posY, $L, $H)
$Curr_CHB = GuiCtrlCreateCheckbox($Label, $posX, $posY, $L, $H)
GUICtrlSetState ($Curr_CHB, 1)
Return $Curr_CHB
EndFunc
AppInstall.ini ; Примечание, если в пути есть кавычки - перед ними необходим слеш \" !!! [1] Name=Outpost Firewall 3.51 Path=OutPost\setup.exe Path2= Path3= Cond= Reg= ... [3] Name=Ligth Alloy 4 Path=LA\LAsetup.exe /S \"/Path=%ProgramFiles%\LA\" /StMenu=1 /Desktop=1 /Assoc=0 Path2= Path3= Cond= Reg= .... [14] Name=PoverDVD 7 Path=PoverDVD\PowerDVD7.exe Path2=PoverDVD\Russ.exe Path3= Cond= Reg=PoverDVD\powerdvd.reg Имена секций - цифры по порядку, Я компилированный скрипт и ini файл кидаю в $OEM$ и вызываю из батника через cmdlines.txt после установки DX и пр. софта необходимого на любой машине. |
|
Отправлено: 16:48, 08-08-2006 | #254 |
|
Ветеран Сообщения: 508
|
Профиль | Отправить PM | Цитировать Здравствуйте все.
Ставлю софт с CD-Roma с помощью WPI 5.2. (До этого пользовал 4.3.8, все было нормально). Теперь при запуске WPI выскакивает ошибка сценария: Строка: 42 Символ: 3 Ошибка:Объектная переменная или переменная блока With не задана" Код: 0 URL: file://d:\soft\wpi52\wpi.hta вот здесь Перешел на 5.3, и все получилось... ![]() |
|
Последний раз редактировалось snark, 09-08-2006 в 13:48. Отправлено: 11:38, 09-08-2006 | #255 |
|
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать Вышла новая версия WPI - 5.3 (8 августа 2006) Список изменений.
Впечатления от перехода с версии 5.1 на 5.3:
Модифицированные скрипты для WPI 5.3 с отключенным функционалом отметки чекбоксов категорий вкладываю в этот пост. |
|
------- Отправлено: 09:46, 10-08-2006 | #256 |
|
Старожил Сообщения: 150
|
Профиль | Отправить PM | Цитировать господа обьясните идиоту плиз. В свое время запускал WPI 4xxx через RunOnceEx.cmd и усе работало. Но в 5 версии больше нет WPI.cmd и я не знаю как его запустить после установки. Пытался в стартовой строке заменить WPI.cmd на WPI.hta не сработало. Плиз хелп как его после инсталла на автостарт запихнуть.
![]() |
|
------- "Чем больше мы умнеем, тем больше понимаем что мы глупцы."
Отправлено: 16:41, 16-08-2006 | #257 |
|
Старожил Сообщения: 205
|
Профиль | Отправить PM | Цитировать Dark Engel
Цитата:
|
|
|
Отправлено: 18:52, 16-08-2006 | #258 |
|
Старожил Сообщения: 150
|
Профиль | Отправить PM | Цитировать Цитата:
|
|
|
------- "Чем больше мы умнеем, тем больше понимаем что мы глупцы."
Отправлено: 19:27, 16-08-2006 | #259 |
|
Старожил Сообщения: 205
|
Профиль | Отправить PM | Цитировать У меня как было все настроено, так и осталось. Через wpi.cmd от старой версии. Только каталог WPI подсунул от новой версии и заново все программы вбил, т.к. подсунуть старые настройки не получилось.
|
|
Отправлено: 13:51, 17-08-2006 | #260 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| [решено] создал WPI икону / WPI.ico / для него и файл Autorun.inf | tim75 | Хочу все знать | 7 | 25-02-2013 06:48 | |
| WPI.autorun | Pris | Автоматическая установка Windows 2000/XP/2003 | 10 | 16-01-2012 06:07 | |
| Пакет русификации WPI .:[все вопросы]:. | Aspirine | Автоматическая установка Windows 2000/XP/2003 | 19 | 08-08-2010 01:43 | |
| wpi-wpi | d2201 | Автоматическая установка Windows 2000/XP/2003 | 11 | 13-04-2005 10:19 | |
| PROXY-сервера ---- вопросы, вопросы, вопросы | Galosh | Хочу все знать | 2 | 09-07-2003 00:57 | |
|