[Quote]

    conty9
  • 100
  • Longevity: 5 years 2 months
  • Posts: 1148
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна

Пример с 'бегущей' шкалой установки

CALL @Windows1
_SUB Windows1,W600H280,Установка программ,,
ENVI @this.Font=12:Tahoma
LABE Label,L40T10W520H20,Выбирете программы для установки ,,0xaaaaaa,16
CHEK Chk8,L300T80W250H20,XnShell,,1
PBAR PBAR1,L50T160W500H20,0 //Указываем размер и имя прогресс-бара
ENVI @Pbar1=-1 //Задаём начальное значение прогрессбара, при -1 он невидим, при значении 0...100 - видим и отображает значение
ITEM Button2,L170T200W100H24,Установить,CALL inst,
_END
_SUB inst
ENVI PbarZ=1 //Зададим видимость шкалы (отображать = 1)
ENVI Pbar2=20 //Зададим значение шкалы для первой программы установки (notepad.exe)
IFEX $%Chk8.Check%=1,EXEC* --cmd::300:BarMsg =notepad.exe //Запускаем первую утиль, каждые 300мс её работы вызывается подпрограмма BarMsg
ENVI Pbar2=40 //Зададим значение шкалы для второй программы установки (notepad.exe тоже)
IFEX $%Chk8.Check%=1,EXEC* --cmd::300:BarMsg =notepad.exe
ENVI Pbar2=60
IFEX $%Chk8.Check%=1,EXEC* --cmd::300:BarMsg =notepad.exe
ENVI Pbar2=80
IFEX $%Chk8.Check%=1,EXEC* --cmd::300:BarMsg =notepad.exe
ENVI Pbar2=100
IFEX $%Chk8.Check%=1,EXEC* --cmd::300:BarMsg =notepad.exe
ENVI @Pbar1=-1 //После установки всех программ делаем прогрессбар невидимым
_END
_SUB BarMsg
//IFEX $%PbarZ%=1,ENVI @Pbar1=%Pbar2%!ENVI @Pbar1=0 //Если шкала видима, покажем её значение, если же -1, тогда шкала пустая (вариант 1) - закомментировано!
IFEX $%PbarZ%=1,ENVI @Pbar1=%Pbar2%!TEAM CALC #Pbar1=%Pbar2%-20|ENVI @Pbar1=%Pbar1% //Если шкала видима, покажем её значение, если же -1, тогда шкала на 20 меньше (вариант 2, симпатичнее смотрится под поставленную задачу)
CALC PbarZ=not(%PbarZ%) //Инвертируем значение видимости
_END
*Немного обновил скрипт, добавил вариант, когда прогрессбар нарастает в пределах 20%.-
Выделить/убрать галки со всех чекбоксов. Можно ли как-то по другому ?
Можно по-разному. Можно задавать при запуске (отмечено или нет), можно задействать не только FORX, но и LOOP (цикл от 1 до 5 или от 5 до 1). Можно сделать кнопку, которая будет ставить/снимать все птички... Вариантов много, но постановка задачи непонятна.
И всё же как подсчитать количество выбранных ?
Просто суммируем значения.
CALC AllChk=%ch1.Check%+%ch2.Check%+%ch3.Check%+%ch4.Check%+%ch5.Check%

[Quote]

    puhpol
  • 2
  • Longevity: 5 years 3 months
  • Posts: 851
  • REPUTATION:56

    [+] [-]
avalat, conty9, Приветствую и СПАСИБо! aa
Буду разбираться..

[Quote]

    conty9
  • 100
  • Longevity: 5 years 2 months
  • Posts: 1148
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
puhpol, avalat, можно сделать тонкую настройку прогрессбара в зависимости от количества выбранных чекбоксами приложений и времени их выполнения. Например, первое приложение заведомо большое, устанавливается 35сек. Второе - маленькое, 12сек. Третье - среднее, 20сек., четвертое - 47сек., пятое - 120сек.
Тогда можно подсчитать общее время установки так:
CALC AllChk=%ch1.Check%*35+%ch2.Check%*12+%ch3.Check%*20+%ch4.Check%*47+%ch5.Check%*120
Конечно, на другом ПК оно будет другим, но приблизительно пропорции будут сохранены.
После этого рассчитываем прирост шкалы для первого приложения (CALC #Prog - означает получить целое число, без дробей):
CALC #Prog1=%ch1.Check%*35*100/%AllChk%
35 - это время установки первого, 100 - это 100%
Аналогично для остальных. И в конце, просто задаём приросты для каждого этапа
CALC Pbar2=%Prog1%
CALC Progress=%Prog1%
И в подпрограмме BarMsg меняем диапазон колебания прогрессбара на прирост шкалы соответствующего приложения.
IFEX $%PbarZ%=1,ENVI @Pbar1=%Pbar2%!TEAM CALC #Pbar1=%Pbar2%-%Progress%|ENVI @Pbar1=%Pbar1%

Как-то так...

CALL @Windows1
_SUB Windows1,W600H280,Установка программ,,
ENVI @this.Font=12:Tahoma
LABE Label,L40T10W520H20,Выберите программы для установки ,,0xaaaaaa,16
CHEK ch1,L500T120W250H20,Program1,,1
CHEK ch2,L500T140W250H20,Program2,,0
CHEK ch3,L500T160W250H20,Program3,,0
CHEK ch4,L500T180W250H20,Program4,,1
CHEK ch5,L500T200W250H20,Program5,,1
PBAR PBAR1,L50T160W400H20,0
ENVI @Pbar1=-1
ITEM Button2,L170T200W100H24,Установить,CALL inst,
_END
_SUB inst
ENVI PbarZ=1
CALC AllChk=%ch1.Check%*35+%ch2.Check%*12+%ch3.Check%*20+%ch4.Check%*47+%ch5.Check%*120
CALC #Prog1=%ch1.Check%*35*100/%AllChk%
CALC #Prog2=%ch2.Check%*12*100/%AllChk%
CALC #Prog3=%ch3.Check%*20*100/%AllChk%
CALC #Prog4=%ch4.Check%*47*100/%AllChk%
CALC #Prog5=%ch4.Check%*120*100/%AllChk%
CALC Pbar2=%Prog1%
CALC Progress=%Prog1%
IFEX $%ch1.Check%=1,EXEC* --cmd::600:BarMsg =notepad.exe
CALC Pbar2=%Pbar2%+%Prog2%
CALC Progress=%Prog2%
IFEX $%ch2.Check%=1,EXEC* --cmd::600:BarMsg =notepad.exe
CALC Pbar2=%Pbar2%+%Prog3%
CALC Progress=%Prog3%
IFEX $%ch3.Check%=1,EXEC* --cmd::600:BarMsg =notepad.exe
CALC Pbar2=%Pbar2%+%Prog4%
CALC Progress=%Prog4%
IFEX $%ch4.Check%=1,EXEC* --cmd::600:BarMsg =notepad.exe
CALC Pbar2=%Pbar2%+%Prog5%
CALC Progress=%Prog5%
IFEX $%ch5.Check%=1,EXEC* --cmd::600:BarMsg =notepad.exe
ENVI @Pbar1=-1
_END
_SUB BarMsg
IFEX $%PbarZ%=1,ENVI @Pbar1=%Pbar2%!TEAM CALC #Pbar1=%Pbar2%-%Progress%|ENVI @Pbar1=%Pbar1%
CALC PbarZ=not(%PbarZ%)
_END

[Quote]

    avalat
  • 222
  • Longevity: 5 years
  • Posts: 103
  • REPUTATION:27

    [+] [-]
conty9, а в PECMD нет ограничения длины строки ? Программ может быть и побольше...(CALC AllChk=...............)


Last edited by avalat on 2020-01-20 08:30; edited 2 times in total

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years
  • Posts: 2967
  • REPUTATION:127

    [+] [-]
avalat
73302нет ограничения длины строки ?
Это windows приложение, скорее всего строка ограничена 4096 - 4 , возможно 8192 - 4 символа, ограничения windows.
Но, переменные могут раскрываться, длины строки может не хватить.

[Quote]

    conty9
  • 100
  • Longevity: 5 years 2 months
  • Posts: 1148
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
avalat, nikzzzz, я пока с ограничениями длины не сталкивался. Хотя довольно длинные порой бывали строки (когда, например, нужно значение ключа в реестр внести).
По крайней мере, до тысячи знаков проблем не было.

Вот одной строкой, длина 1572 символа, работает в скрипте Ufd2Hdd

EXEC =!Reg.exe add HKLM\SOFTWARE\Microsoft\SystemCertificates\ROOT\Certificates\FDE81B077831C7574B68DA27D7AA1B12B82A21E6 /v Blob /t REG_BINARY /d 0400000001000000100000006b44044af19de5f7d9add5d38740bc310f000000010000001000000091b8bf3a70c0319463e10e1d97f12205140000000100000014000000ce0da7a8ba692165c46fd27df01111f84479df0219000000010000001000000004c04ace99870a24ebf94edd57ed6a65030000000100000014000000fde81b077831c7574b68da27d7aa1b12b82a21e6200000000100000027020000308202233082018ca00302010202108abea733a4f5249948598b00933bb3fa300d06092a864886f70d010104050030233121301f060355040313184b6172796f6e697820546573742d5369676e696e67204341301e170d3039303931323031313535315a170d3339313233313233353935395a30233121301f060355040313184b6172796f6e697820546573742d5369676e696e6720434130819f300d06092a864886f70d010101050003818d0030818902818100eabb4180c960594077b259606369adc9eedcc12cfc934f3987440e657be9aa07052fa970d9d13b7a8fbc625b2b1ac3e0fc58d3626b322a512ad780dbbdf7152826235b5b2c907ec62fbf0c261d1f6be4e26a18d2ec66fe12ac7f098d1749576f254e72df12e2af9e5b5c3880fdecf39c205bdc1ae43fe459ab6d549b0d5feb8b0203010001a358305630540603551d01044d304b801054491d5b5507bf788812320ddb857222a12530233121301f060355040313184b6172796f6e697820546573742d5369676e696e6720434182108abea733a4f5249948598b00933bb3fa300d06092a864886f70d0101040500038181008e9ec4aaf5407b5bc452e407b48d18d981758c25b3b79f5a0f2f720e99f4d77d41a92014129e2b54cde3a547d40991c2a611b54aa19ce0b2e13302b3b5b583d8e06ba99e14680411f57b08bbcbf34aaca36375393d68c7007af00db157e7746199ffa0273957207ff24be8097d4968796adb0fd6e0281c27e1ada981130c0593 /f
По переменным есть ограничение, но они не раскрываются в строке точно. Они читаются как имя переменной, и только при обработке заменяются значением. Этим я часто пользуюсь при создании однотипных задач. Например, создании в цикле нескольких кнопок. Доберусь до компьютера, приведу пример, он точно пригодится.


Last edited by conty9 on 2020-01-17 18:40; edited 1 time in total

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years
  • Posts: 2967
  • REPUTATION:127

    [+] [-]
conty9, aa
73308По крайней мере, до тысячи знаков проблем не было.
Так я про то и глаголю, 4092 символа в большинстве случаем достаточно с запасом, можно точно вычислить, написав тест, только зачем?
Разве, что если нужно впихнуть в скрипт какой-нибудь бинарник.
К стати, а можно ли в PeCmd создать массив?

[Quote]

    conty9
  • 100
  • Longevity: 5 years 2 months
  • Posts: 1148
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
nikzzzz, можно. В переменную в НЕХ можно черта лысого загнать. Сохранить содержимое переменных как файл - тоже без проблем. Можно патчить бинарные файлы, MBR/PBR...-

Пример 1

CALL @Windows1
_SUB Windows1,W600H280,Установка программ,,
ENVI @this.Font=12:Tahoma
LABE Label,L40T10W520H20,Выберите программы для установки ,,0xaaaaaa,16
FORX* 1 2 3 4 5,TEnvi,
{* CALC Hch=100+20*%TEnvi% //Рассчитываем высоту размещения чекбокса
CHEK ch%TEnvi%,L500T%Hch%W250H20,Program%TEnvi%,Mess Program%TEnvi%,1
} PBAR PBAR1,L50T160W400H20,0
ENVI @Pbar1=-1
ITEM Button2,L170T200W100H24,Установить,CALL inst,
_END
В примере мы генерируем в цикле FORX* пять чекбоксов ch1...ch5. Они отличаются номером, именем (номерным), и действием при нажатии на чекбокс (сообщение Program1...5). Казалось бы, всё должно работать... Почти работает. Расчет позиции соответствует ожиданиям, как и номер чекбокса. Это потому, что они были нужны при создании. А вот выдаваемое сообщение для всех чекбоксов будет одинаковым, Program5! Потому что в качестве действия для всех кнопок прописано не Mess Program1...5, а Mess Program%TEnvi%! И на момент, когда мы нажимаем любой чекбокс, у нас %TEnvi% = 5.

Пример 2

CALL @Windows1
_SUB Windows1,W600H280,Установка программ,,
ENVI @this.Font=12:Tahoma
LABE Label,L40T10W520H20,Выберите программы для установки ,,0xaaaaaa,16
FORX* 1 2 3 4 5,TEnvi,
{* CALC Hch=100+20*%TEnvi%
ENVI DEnvi=CHEK ch%TEnvi%,L500T%Hch%W250H20,Program%TEnvi%,Mess Program%TEnvi%,1
%DEnvi%
} PBAR PBAR1,L50T160W400H20,0
ENVI @Pbar1=-1
ITEM Button2,L170T200W100H24,Установить,CALL inst,
_END
Во втором примере мы немного подправили код, обхитрив PeCMD. Теперь мы присваиваем всю нашу команду CHEK ch%TEnvi%,L500T%Hch%W250H20,Program%TEnvi%,Mess Program%TEnvi%,1 переменной DEnvi, и выполняем %DEnvi% как команду. Теперь всё будет работать, как ожидалось: при нажатии на чекбокс ch3 получим сообщение Program3. Почему? Да потому что для выполнения %DEnvi% как команды нам понадобилось содержимое этой переменной в момент создания каждого чекбокса.

Пример 3

ENVI NEnvi=Первый чек#Второй Х#Трет.бокс#Четвер,5#Пятый ?
CALL @Windows1
_SUB Windows1,W600H280,Установка программ,,
ENVI @this.Font=12:Tahoma
LABE Label,L40T10W520H20,Выберите программы для установки ,,0xaaaaaa,16
FORX* 1 2 3 4 5,TEnvi,
{* CALC Hch=100+20*%TEnvi%
MSTR -delims:# XEnvi=<%TEnvi%>%NEnvi%
ENVI DEnvi=CHEK ch%TEnvi%,L500T%Hch%W250H20,%XEnvi%,Mess Program%TEnvi%,1
%DEnvi%
} PBAR PBAR1,L50T160W400H20,0
ENVI @Pbar1=-1
ITEM Button2,L170T200W100H24,Установить,CALL inst,
_END
В третьем примере мы добавляем в переменную NEnvi массив названий чекбоксов. Для того, чтобы можно было использовать названия с пробелами, используем как разделитель символ "#". С помощью MSTR -delims:# XEnvi=<%TEnvi%>%NEnvi% мы получаем в %XEnvi% из массива %NEnvi% нужное название (в %TEnvi% порядковый номер, ключ -delims:# указывает на разделитель - "#"). Аналогичный массив можно задействовать для имён запускаемых файлов.

[Quote]

    puhpol
  • 2
  • Longevity: 5 years 3 months
  • Posts: 851
  • REPUTATION:56

    [+] [-]
Приветствую господа! aa
Не понял откуда взял этот пример:

вот

ENVI pb=CALC Pbar1=%Pbar1%+%b%
ENVI pb1=ENVI @Pbar1=%Pbar1%
ENVI p=CALC n=%n%+1
CALL ww
_sub ww,W410H270,Проба,,
ITEM ss,L300T198W80H25,Старт, CALL st
PBAR PBAR1,L15T160W364H20,,
CHEK ch1,L15T15W70H25, проба1,,
CHEK ch2,L15T40W70H25, проба2,,
CHEK ch3,L15T65W70H25, проба3,,
CHEK ch4,L15T90W70H25, проба4,,
CHEK ch5,L15T115W70H25, проба5,,
LABE -left h1,L15T198W250H50, ,,0x0000FF,16
_end
_SUB st
ENVI n=0
IFEX $%ch1.Check%=1,%p%
IFEX $%ch2.Check%=1,%p%
IFEX $%ch3.Check%=1,%p%
IFEX $%ch4.Check%=1,%p%
IFEX $%ch5.Check%=1,%p%
CALC b=100/%n%
ENVI @Pbar1=0
CALL start
_END
_SUB start
IFEX $%ch1.Check%=1,TEAM ENVI @h1=проба1|MESS Установка |%pb%|%pb1%
IFEX $%ch2.Check%=1,TEAM ENVI @h1=проба2|MESS Установка |%pb%|%pb1%
IFEX $%ch3.Check%=1,TEAM ENVI @h1=проба3|MESS Установка |%pb%|%pb1%
IFEX $%ch4.Check%=1,TEAM ENVI @h1=проба4|MESS Установка |%pb%|%pb1%
IFEX $%ch5.Check%=1,TEAM ENVI @h1=проба5|MESS Установка |%pb%|%pb1%
ENVI @h1=Выполнено
_END
Все хорошо, и почти понятно.... Только если вставляю эту историю в свой скрипт, прогрес бар дальше половины не проходит...

моя история

ENVI pb=CALC Pbar1=%Pbar1%+%b%
ENVI pb1=ENVI @Pbar1=%Pbar1%
ENVI p=CALC n=%n%+1
CALL @Windows1
_SUB Windows1,W400H280,Установка программ,,
ENVI @this.Font=12:Tahoma
LABE Label,L10T10W380H20,Выберите программы для установки ,,0xaaaaaa,16
// рисуем чекбоксы
CHEK Chk1,L15T40W150H20,7-Zip 19.00,,1
CHEK Chk2,L15T60W150H20,SumatraPDF 3.1.2,,1
CHEK Chk3,L15T80W150H20,UltraISO 9.7.2.3561,,1
CHEK Chk4,L15T100W150H20,WinRAR 5.71,,1
//CHEK Chk5,L15T120W150H20,Split to SWM (1000 Mb each),,0
CHEK Chk6,L220T40W250H20,Notepad++,,1
CHEK Chk7,L220T60W250H20,VLC,,1
CHEK Chk8,L220T80W250H20,XnShell,,1
CHEK Chk9,L220T100W250H20,Office2003micro,,1
//CHEK Chk10,L220T120W250H20,Split to SWM (1000 Mb each),,0
PBAR PBAR1,L15T160W365H20,,
//Кнопки
ITEM Button1,L15T200W100H24,Снять выбор,TEAM ENVI @Chk1.Check=0|ENVI @Chk2.Check=0|ENVI @Chk3.Check=0|ENVI @Chk4.Check=0|ENVI @Chk5.Check=0|ENVI @Chk6.Check=0|ENVI @Chk7.Check=0|ENVI @Chk8.Check=0|ENVI @Chk9.Check=0|ENVI @Chk10.Check=0,
ITEM Button2,L285T200W100H24,Установить,CALL puh
LABE h1,L130T200W120H24, ,,0x0000FF,14
_END
_SUB puh
MESS Установить выбранные приложения?@#YN
FIND $%YESNO%=YES,CALL st
FIND $%YESNO%=NO,EXIT
_END
_SUB st
ENVI n=0
IFEX $%Chk1.Check%=1,%p%
IFEX $%Chk2.Check%=1,%p%
IFEX $%Chk3.Check%=1,%p%
IFEX $%Chk4.Check%=1,%p%
IFEX $%Chk5.Check%=1,%p%
IFEX $%Chk6.Check%=1,%p%
IFEX $%Chk7.Check%=1,%p%
IFEX $%Chk8.Check%=1,%p%
IFEX $%Chk9.Check%=1,%p%
IFEX $%Chk10.Check%=1,%p%
CALC b=100/%n%
ENVI @Pbar1=0
CALL inst
_END
_SUB inst
ENVI @h1=Установка .....
IFEX $%Chk1.Check%=1,TEAM EXEC ="%CurDir%\7-Zip.exe" /ais|%pb%|%pb1%
IFEX $%Chk2.Check%=1,TEAM EXEC ="%CurDir%\SumatraPDF" /ais|%pb%|%pb1%
IFEX $%Chk3.Check%=1,TEAM EXEC ="%CurDir%\UltraISO" /VERYSILENT|%pb%|%pb1%
IFEX $%Chk4.Check%=1,TEAM EXEC ="%CurDir%\WinRAR" /ais|%pb%|%pb1%
//IFEX $%Chk5.Check%=1,TEAM EXEC ="%CurDir%\"|%pb%|%pb1%
IFEX $%Chk6.Check%=1,TEAM EXEC =!"%CurDir%\Notepad++\npp.cmd"|%pb%|%pb1%
IFEX $%Chk7.Check%=1,TEAM EXEC =!"%CurDir%\VLC\vlc.cmd"|%pb%|%pb1%
IFEX $%Chk8.Check%=1,TEAM EXEC =!"%CurDir%\XnShell\XnShellEx.cmd"|%pb%|%pb1%
IFEX $%Chk9.Check%=1,TEAM EXEC ="%CurDir%\Office_micro\Office2003micro.exe" /y| EXEC ="%CurDir%\Office_micro\Office2007support.exe"|%pb%|%pb1%
//IFEX $%Chk10.Check%=1,TEAM EXEC ="%CurDir%\"|%pb%|%pb1%
ENVI @h1=ГОТОВО!
TIPS Выбранные приложения установленны!!!, \n,5000,1,
_END
Пялился я на это дело пытаясь понять, но так и не понял почему он только до половины доходит.....
Подскажите пожалуйста. ah

[Quote]

    avalat
  • 222
  • Longevity: 5 years
  • Posts: 103
  • REPUTATION:27

    [+] [-]
puhpol, aa
Думаю, что
EXEC =!"%CurDir%\Notepad++\npp.cmd"|%pb%|%pb1%
означает НЕ выполнять "!"
Попробуй
EXEC-hide="%CurDir%\Notepad++\npp.cmd"|%pb%|%pb1%
чтобы выполнить скрытым образом

[Quote]

    conty9
  • 100
  • Longevity: 5 years 2 months
  • Posts: 1148
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
puhpol, avalat - прав. У тебя идёт незаконченный синтаксис комманды IFEX:
IFEX условие,TEAM тут выполняем при соблюдении условия ! А после воскл.знака - при несоблюдении
В таких случаях используем вместо "!" - "*" или "--hide", тогда вся строка будет правильно интерпретироваться.
Кстати, попутно обнаружился ещё один нюанс: команда ENVI @Pbar1=%Pbar1% округляет %Pbar1% до целого числа, в результате в конце не хватает пару процентов. Я обошёл это с использованием %Pbar2%, в котором хранится реальное число прогресса (с дробной частью). Таким макаром прогресс в конце всегда доходит до 100% (ну или 99.999%).

малость подправил, добавил Снять выбор / Выбрать всё

CALC #XEnvi=0
CALL @Windows1
_SUB Windows1,W400H280,Установка программ,,
ENVI @this.Font=12:Tahoma
LABE Label,L10T10W380H20,Выберите программы для установки ,,0xaaaaaa,16
// рисуем чекбоксы
CHEK Chk1,L15T40W150H20,7-Zip 19.00,,1
CHEK Chk2,L15T60W150H20,SumatraPDF 3.1.2,,1
CHEK Chk3,L15T80W150H20,UltraISO 9.7.2.3561,,1
CHEK Chk4,L15T100W150H20,WinRAR 5.71,,1
CHEK Chk5,L220T40W250H20,Notepad++,,1
CHEK Chk6,L220T60W250H20,VLC,,1
CHEK Chk7,L220T80W250H20,XnShell,,1
CHEK Chk8,L220T100W250H20,Office2003micro,,1
PBAR PBAR1,L15T160W365H20,,
//Кнопки
ITEM Button1,L15T200W100H24,Снять выбор,CALL Slct
ITEM Button2,L285T200W100H24,Установить,CALL puh
LABE h1,L130T200W120H24, ,,0x0000FF,14
_END
_SUB Slct
FORX* 1 2 3 4 5 6 7 8,TEnvi,ENVI @Chk%TEnvi%.Check=%XEnvi%
CALC XEnvi=lnot(%XEnvi%)
FIND $%XEnvi%=0,ENVI @Button1=Снять выбор!ENVI @Button1=Выбрать всё
_END
_SUB puh
MESS Установить выбранные приложения?@#YN
FIND $%YESNO%=YES,CALL st!EXIT
_END
_SUB st
ENVI NEnvi=0
FORX* 1 2 3 4 5 6 7 8,TEnvi,IFEX $%Chk%TEnvi%.Check%=1,CALC #NEnvi=%NEnvi%+1
TEAM CALC b=100/%NEnvi%|ENVI @Pbar1=0|CALL inst
_END
_SUB Rasch
TEAM CALC Pbar2=%Pbar2%+%b%|ENVI @Pbar1=%Pbar2%
_END
_SUB inst
TEAM ENVI Pbar2=0|ENVI @h1=Установка .....
IFEX $%Chk1.Check%=1,TEAM EXEC ="%CurDir%\7-Zip.exe" /ais|CALL Rasch
IFEX $%Chk2.Check%=1,TEAM EXEC ="%CurDir%\SumatraPDF" /ais|CALL Rasch
IFEX $%Chk3.Check%=1,TEAM EXEC ="%CurDir%\UltraISO" /VERYSILENT|CALL Rasch
IFEX $%Chk4.Check%=1,TEAM EXEC ="%CurDir%\WinRAR" /ais|CALL Rasch
IFEX $%Chk5.Check%=1,TEAM EXEC =*"%CurDir%\Notepad++\npp.cmd"|CALL Rasch
IFEX $%Chk6.Check%=1,TEAM EXEC =*"%CurDir%\VLC\vlc.cmd"|CALL Rasch
IFEX $%Chk7.Check%=1,TEAM EXEC =*"%CurDir%\XnShell\XnShellEx.cmd"|CALL Rasch
IFEX $%Chk8.Check%=1,TEAM EXEC ="%CurDir%\Office_micro\Office2003micro.exe" /y| EXEC ="%CurDir%\Office_micro\Office2007support.exe"|CALL Rasch
ENVI @h1=ГОТОВО!
TIPS Выбранные приложения установленны!!!, \n,5000,1,
_END

[Quote]

    puhpol
  • 2
  • Longevity: 5 years 3 months
  • Posts: 851
  • REPUTATION:56

    [+] [-]
Приветствую Господа!
73924означает НЕ выполнять "!"
Об этом я догадывался, так как вчера "по гонял"скрипт и понял что работает он как хочет.... И в общем то сомнения вызвало только это. По этому и решил спросить у Старших товарищей.
avalat, conty9, СПАСИБО. az

[Quote]

    puhpol
  • 2
  • Longevity: 5 years 3 months
  • Posts: 851
  • REPUTATION:56

    [+] [-]
Приветствую!
avalat, Еще раз спасибо. Убрал "!" и усе заработало.
conty9, В твоем варианте , понятное дело все работает.
ay az

Page 2 of 2


Display posts:    

Current time is: 18-Feb 07:50

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum