[Quote]

    puhpol
  • 2
  • Longevity: 5 years 8 months
  • Posts: 933
  • REPUTATION:60

    [+] [-]
Набор программ которые лично мне просто не обходимы в системе. Собрано в кучку, оболочка для установки сделана avalat и conty9.
Состав программ:
  • Notepad++ - текстовый редактор.
  • Office_micro 2003 + Пакет совместимости Office2007support - мини офис, обрезан по полной .
  • vlc-3.0.8- бесплатный и свободный кросс-платформенный медиаплеер и медиаплатформа с открытым исходным кодом.
  • XnShell - инструмент для работы с файлами изображений, который интегрируется в стандартный проводник Windows, расширяя его возможности.
  • 7-Zip - архиватор для Windows к достоинствам которого можно смело отнести комфортную скорость работы, поддержку всех современных форматов.
  • DirectX 9с- бесплатный пакет библиотек, необходимый системе для эффективной работы с мультимедиа – играми, звуком, анимациями.
  • RuntimePack - это пакет библиотек, устанавливающий недостающие для Windows компоненты, которые необходимые для запуска компьютерных игр и программ.
  • SumatraPDF- бесплатная, компактная и быстрая программа для просмотра файлов в формате PDF, ePub, MOBI, XPS, DjVu, CHM, CBZ и CBR.
  • UltraISO- мощная программа для создания, редактирования и конвертирования различных форматов образов CD/DVD-дисков.
  • WinRAR- мега популярный архиватор, умеющий обрабатывать практически любые форматы архивов (например RAR, ZIP, CAB, 7Z, JAR, ACE, TAR, ISO)...
Может еще кому сгодится, скачать >> dy 200mb.

[Quote]

    dimo70
  • 17296
  • Longevity: 2 years 7 months
  • Posts: 1352
  • REPUTATION:20

    [+] [-]
  • Location: BG
puhpol, есть возможность самому добавлять или удалять программы? aa

[Quote]

    KottoSOFT
  • 206
  • Longevity: 5 years 5 months
  • Posts: 713
  • REPUTATION:62

    [+] [-]
puhpol,
Приветствую, с под папками, то понятно, можно обновить проги скрипты с ключами подправить

Картинка

А вот бы оболочку в разобранном виде, что то добавить, что то подправить, под свой набор программ.

[Quote]

    puhpol
  • 2
  • Longevity: 5 years 8 months
  • Posts: 933
  • REPUTATION:60

    [+] [-]
Завтра распишу.... А вообще скрипт лежит в этой теме >> https://usbtor.ru/viewtopic.php?p=73943

[Quote]

    puhpol
  • 2
  • Longevity: 5 years 8 months
  • Posts: 933
  • REPUTATION:60

    [+] [-]
Как разобрать и изменить:
Файл "Prog_Setup.exe" открываем в редакторе ресурсов (ресторатор допустим)
Если нужно заменить иконку - меняем ресурс "Иконка - 1"
.
Сам скрипт это ресурс "SKRIPT > 101" , вытаскиваем ресурс 101 допустим на рабочий стол.
.
Открываем ресурс 101 в текстовом редакторе. (советую сохранить файл с разрешением wsc и открыть его в Notepad++ из этой темы
Изменяем на свое усмотрение.
В скрипте прописаны и закоментированны еще два чек бокса, куда можно добавить еще две программы не нарушая разметку окна.

Сам скрипт с описанием

CALC #XEnvi=0
ENVI pb=CALC Pbar1=%Pbar1%+%b%
ENVI pb1=ENVI @Pbar1=%Pbar1%
ENVI p=CALC n=%n%+1
CALL @Windows1
_SUB Windows1,W400H280,Установка программ,, // Размер основного окна и его название.
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,RuntimePack Lite,,1
//CHEK Chk6,L15T140W150H20,Новая программа,,0
CHEK Chk7,L220T40W250H20,Notepad++,,1
CHEK Chk8,L220T60W250H20,VLC,,1
CHEK Chk9,L220T80W250H20,XnShell,,1
CHEK Chk10,L220T100W250H20,Office2003micro,,1
CHEK Chk11,L220T120W250H20,DirectX 9.0c,,1
//CHEK Chk12,L220T140W250H20,Новая программа,,0
PBAR PBAR1,L15T180W365H20,, // Прогрес бар и его место положение в окне
ENVI @Pbar1=-1 //Задаём начальное значение прогрес бара, при -1 он невидим
ITEM Button1,L15T215W100H24,Снять выбор,CALL Slct // местоположение кнопки "выбрать все - снять выбор"
ITEM Button2,L285T215W100H24,Установить,CALL puh // местоположение кнопки "установить"
LABE h1,L130T200W120H24, ,,0x0000FF,14 // Местоположение надписи "установка.... - Готово", цвет,размер шрифта.
_END
//Подпрограмма кнопки "выбрать все - снять выбор"
_SUB Slct
FORX* 1 2 3 4 5 6 7 8 9 10 11 12,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
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%
IFEX $%Chk11.Check%=1,%p%
IFEX $%Chk12.Check%=1,%p%
CALC b=100/%n%
ENVI @Pbar1=0
CALL inst
_END
//Подпрограмма установки программ
_SUB inst
ENVI @h1=Установка ..... // Вывод надписи "Установка...."
IFEX $%Chk1.Check%=1,TEAM EXEC ="%CurDir%\prog\7-Zip.exe" /ais|%pb%|%pb1% //Если отмечен чекбокс 1 запуск приложения по пути: каталог программы\prog\7-Zip.exe с параметром /ais
IFEX $%Chk2.Check%=1,TEAM EXEC ="%CurDir%\prog\SumatraPDF" /ais|%pb%|%pb1%
IFEX $%Chk3.Check%=1,TEAM EXEC ="%CurDir%\prog\UltraISO" /VERYSILENT|%pb%|%pb1%
IFEX $%Chk4.Check%=1,TEAM EXEC ="%CurDir%\prog\WinRAR" /ais|%pb%|%pb1%
IFEX $%Chk5.Check%=1,TEAM EXEC ="%CurDir%\prog\RuntimePack.exe" /y /gm2 /fm0|%pb%|%pb1%
//IFEX $%Chk6.Check%=1,TEAM EXEC ="%CurDir%\prog\Новая программа"|%pb%|%pb1%
IFEX $%Chk7.Check%=1,TEAM EXEC =*"%CurDir%\prog\Notepad++\npp.cmd"|%pb%|%pb1%
IFEX $%Chk8.Check%=1,TEAM EXEC =*"%CurDir%\prog\VLC\vlc.cmd"|%pb%|%pb1%
IFEX $%Chk9.Check%=1,TEAM EXEC =*"%CurDir%\prog\XnShell\XnShellEx.cmd"|%pb%|%pb1%
IFEX $%Chk10.Check%=1,TEAM EXEC ="%CurDir%\prog\Office_micro\Office2003micro.exe" /y| EXEC ="%CurDir%\prog\Office_micro\Office2007support.exe"|%pb%|%pb1%
IFEX $%Chk11.Check%=1,TEAM EXEC ="%CurDir%\prog\DirectX.exe"|%pb%|%pb1%
//IFEX $%Chk12.Check%=1,TEAM EXEC ="%CurDir%\prog\Новая программа"|%pb%|%pb1%
ENVI @h1=ГОТОВО! // Вывод надписи "ГОТОВО"
TIPS Выбранные приложения установленны!!!, \n,5000,1, //Вывод надписи в трее, 5000-задержка в милисекундах.
_END

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 5 months
  • Posts: 3237
  • REPUTATION:127

    [+] [-]
puhpol, aa
Я тут решил немного поиграться с PeCmd, в качестве тестовой задачки взял твой скрипт как пример, с GUI никогда до этого в PeCmd не работал.
Получилась вот такая хреновина, может пригодится.
envi i=0
//Добавляем пункты в меню, название, тип запуска, путь, время выполнения (для прогресса)
ArrayAdd "Proga1" "-wait" "%CurDir%\prog\Proga1.cmd" 10
ArrayAdd "Proga2" "-wait" "%CurDir%\prog\Proga1.cmd" 50
ArrayAdd "Proga3" "-wait" "%CurDir%\prog\Proga1.cmd" 20
ArrayAdd "Proga4" "-wait" "%CurDir%\prog\Proga1.cmd" 70
ArrayAdd "Proga5" "-wait" "%CurDir%\prog\Proga1.cmd" 20
//%n% - к-во пунктов меню
calc n=%i% - 1
//Вычисляем размер окна
calc w=400
calc h=int(%n%/2)*20 + 170
//Создаем основное окно
@Windows %w% %h%
exit
_sub Windows,w%1h%2,Установка программ,, // Размер основного окна и его название.
  labe Label1,l10t10w%1h20,Выберите программы для установки ,,0xaaaaaa,16 // Местоположение надписи, цвет,размер шрифта.
   //Инфо
  calc l=15
  calc t=int(%n%/2)*20 + 64
  labe Label2,l%l%t%t%w%1h20,======  Привет ======
  //Создаем в цикле Чек боксы
  envi i=0
  loop %i%<=%n%,
  {
    calc l=mod(%i%,2)*205 + 15
    calc t=int(%i%/2)*20 + 40
    chek Chk[%i%],l%l%t%t%w150h20,%Name[%i%]%,,1 // Чек бокс и его местоположение в окне + Имя программы
    calc i=%i% + 1
  }
  //Кнопки
  calc l=15
  calc t=int(%n%/2)*20 + 108
  item Button1,l%l%t%t%w100h24,Выбрать все,Sel 1 // местоположение кнопки "выбрать все"
  calc l=120
  item Button2,l%l%t%t%w100h24,Снять выбор,Sel 0 // местоположение кнопки "снять выбор"
  calc l=280
  item Button3,l%l%t%t%w100h24,Установить,Install // местоположение кнопки "Установить"
  calc l=15
  calc t=int(%n%/2)*20 + 84
  pbar Pbar,l%l%t%t%w365h20,, // Прогрес бар и его место положение в окне
_end
_sub ArrayAdd
  envi Name[%i%]=%~1
  envi StartType[%i%]=%~2
  envi InstString[%i%]=%~3
  envi InstTime[%i%]=%~4
  calc i=%i% + 1
_end
_sub Sel
  envi i=0
  loop %i%<=%n%,
  {
    envi @Chk[%i%].Check=%1
    calc i=%i% + 1
  }
_end
_sub CheckSel
  //Вычисляем общее время выполнения выбранных пунктов
  envi SummaryTime=0
  envi i=0
  loop %i%<=%n%,
  {
    ifex $%Chk[%i%].Check%=1,calc SummaryTime=%SummaryTime% + %InstTime[%i%]%
    calc i=%i% + 1
  }
_end
_sub Install
  mess Установить выбранные приложения?@#YN
  find $%YESNO%=YES,
  {
    envi @Pbar=0
    CheckSel
    envi CurrentTime=0
    envi i=0
    loop %i%<=%n%,
    {
      ifex $%Chk[%i%].Check%=1,
        {
          envi @Label2=*** Установка  %Name[%i%]% ***
          exec %StartType[%i%]% %InstString[%i%]%
          calc CurrentTime=%CurrentTime% + %InstTime[%i%]%
          calc Percent=%CurrentTime%/%SummaryTime%*100
          envi @Pbar=%Percent%
          envi @Chk[%i%].Check=0
        }
      calc i=%i% + 1
    }
    envi @Label2=*** Все задания выполнены !!! ***
  }
_end
Скрипт сырой, много лишнего, чисто демка, но рабочая. ag

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 5 months
  • Posts: 3237
  • REPUTATION:127

    [+] [-]
Немного поправил скрипт.

[Quote]

    puhpol
  • 2
  • Longevity: 5 years 8 months
  • Posts: 933
  • REPUTATION:60

    [+] [-]
nikzzzz, aa
Спасибо! Для понимания очень полезно. ay
Тот что у меня - для меня понятнее и все же хоть и чуть чуть, но в его создании я поучавствовал. ab

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 5 months
  • Posts: 3237
  • REPUTATION:127

    [+] [-]
puhpol, aa
74045Тот что у меня - для меня понятнее
Так это практически твой скрипт, у тебя просто каждая кнопочка отдельно обрабатывается, у меня в цикле.

[Quote]

    puhpol
  • 2
  • Longevity: 5 years 8 months
  • Posts: 933
  • REPUTATION:60

    [+] [-]
nikzzzz, Твой вариант легче редактировать.
Но возникает вопрос: Откуда берется "время выполнения (для прогресса)"?
Засекать время не вариант, на одной машине 2 минуты на другой 4..... Точность особо не нужна, так визуально видно что что то происходит.

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 5 months
  • Posts: 3237
  • REPUTATION:127

    [+] [-]
74049
Но возникает вопрос: Откуда берется "время выполнения (для прогресса)"?
Засекать время не вариант, на одной машине 2 минуты на другой 4.....
Без разницы, можешь указать от фонаря, например все единицы поставить, но тогда полоса прогресса будет пропорциональна не времени, а к-ву установленных приложений.
Важно относительное время, например одно приложение ставится в десять раз медленнее другого, пишем для первого 10, для второго 1, реальное время установки не используется.

[Quote]

    conty9
  • 100
  • Longevity: 5 years 6 months
  • Posts: 1236
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
nikzzzz, раз пошла такая пьянка, тогда уже лучше читать данные из внешнего файла конфига. Для примера, если наша утиль будет иметь имя MySetup.exe, тогда конфиг MySetup.cfg

Читаем конфиг

CALC #i=0 //Переменная для подсчета количества программ
CALC #NEnvi=0 //Переменная для перебора строк
FNAM TEnvi=%MyName% //Получаем в TEnvi имя запущенного файла
ENVI TEnvi=%TEnvi%.cfg //Генерируем имя конфига (имя файла с расширением cfg)
IFEX %CurDir%\%TEnvi%, //Если найден конфиг
{* READ %CurDir%\%TEnvi%,*r,DataCFG //Читаем содержимое конфига в переменную DataCFG
READ -,-1,DEnvi,%DataCFG% //Считаем количество строк в конфиге
LOOP #%NEnvi%<%DEnvi%, //Цикл чтения из конфига
{* READ -,%NEnvi%,XEnvi,%DataCFG% //Читаем в XEnvi строку %NEnvi%
CALC #NEnvi=%NEnvi%+1 //Увеличиваем номер строки
MSTR -delims:# TEnvi=<4>%XEnvi% //Читаем в переменную TEnvi последнее слово строки
FIND $%TEnvi%<>, //Если последнее слово есть, тогда
{* CALC #i=%i%+1 //Увеличиваем количество программ
MSTR -delims:# Name%i%,StartType%i%,InstString%i%,InstTime%i%=<1*>%XEnvi% //Вносим значения из строки в переменные (разделителем значений служит символ #)
MESS %Name%i%%,%StartType%i%%,%InstString%i%%,%InstTime%i%% //Индикация для теста
} } ! EXIT //Если конфиг не найден, выход из программы

Если совместить с демкой от nikzzzz

CALC #i=0
CALC #NEnvi=0
FNAM TEnvi=%MyName%
ENVI TEnvi=%TEnvi%.cfg
IFEX %CurDir%\%TEnvi%,
{* READ %CurDir%\%TEnvi%,*r,DataCFG
READ -,-1,DEnvi,%DataCFG%
LOOP #%NEnvi%<%DEnvi%,
{* READ -,%NEnvi%,XEnvi,%DataCFG%
CALC #NEnvi=%NEnvi%+1
MSTR -delims:# TEnvi=<4>%XEnvi%
FIND $%TEnvi%<>,
{* MSTR -delims:# Name[%i%],StartType[%i%],InstString[%i%],InstTime[%i%]=<1*>%XEnvi%
CALC #i=%i%+1
} } ! EXIT
//----------------------------------------------------------------
//%n% - к-во пунктов меню
calc #n=%i%
//Вычисляем размер окна
calc w=400
calc h=int(%n%/2)*20 + 170
//Создаем основное окно
@Windows %w% %h%
exit
_sub Windows,w%1h%2,Установка программ,, // Размер основного окна и его название.
labe Label1,l10t10w%1h20,Выберите программы для установки ,,0xaaaaaa,16 // Местоположение надписи, цвет,размер шрифта.
//Инфо
calc l=15
calc t=int(%n%/2)*20 + 64
labe Label2,l%l%t%t%w%1h20,====== Привет ======
//Создаем в цикле Чек боксы
envi i=0
loop %i%<%n%,
{
calc l=mod(%i%,2)*205 + 15
calc t=int(%i%/2)*20 + 40
chek Chk[%i%],l%l%t%t%w150h20,%Name[%i%]%,,1 // Чек бокс и его местоположение в окне + Имя программы
calc i=%i% + 1
}
//Кнопки
calc l=15
calc t=int(%n%/2)*20 + 108
item Button1,l%l%t%t%w100h24,Выбрать все,Sel 1 // местоположение кнопки "выбрать все"
calc l=120
item Button2,l%l%t%t%w100h24,Снять выбор,Sel 0 // местоположение кнопки "снять выбор"
calc l=280
item Button3,l%l%t%t%w100h24,Установить,Install // местоположение кнопки "Установить"
calc l=15
calc t=int(%n%/2)*20 + 84
pbar Pbar,l%l%t%t%w365h20,, // Прогрес бар и его место положение в окне
_end
_sub Sel
envi i=0
loop %i%<=%n%,
{
envi @Chk[%i%].Check=%1
calc i=%i% + 1
}
_end
_sub CheckSel
//Вычисляем общее время выполнения выбранных пунктов
envi SummaryTime=0
envi i=0
loop %i%<=%n%,
{
ifex $%Chk[%i%].Check%=1,calc SummaryTime=%SummaryTime% + %InstTime[%i%]%
calc i=%i% + 1
}
_end
_sub Install
mess Установить выбранные приложения?@#YN
find $%YESNO%=YES,
{
envi @Pbar=0
CheckSel
envi CurrentTime=0
envi i=0
loop %i%<=%n%,
{
ifex $%Chk[%i%].Check%=1,
{
envi @Label2=*** Установка %Name[%i%]% ***
exec %StartType[%i%]% %InstString[%i%]%
calc CurrentTime=%CurrentTime% + %InstTime[%i%]%
calc Percent=%CurrentTime%/%SummaryTime%*100
envi @Pbar=%Percent%
envi @Chk[%i%].Check=0
}
calc i=%i% + 1
}
envi @Label2=*** Все задания выполнены !!! ***
}
_end

Примерное содержимое конфиг-а

7-zip#-wait#%CurDir%\prog\Proga1.cmd#1
Моя программа#-wait#%CurDir%\prog\Proga2.cmd#5
===========Основные программы=================
Проверка#-wait#%CurDir%\prog\Proga3.cmd#2
-------------Дополнительно--------------------
Тест#-wait#%CurDir%\prog\Proga4.cmd#7
Proga5#-wait#%CurDir%\prog\Proga5.cmd#2
В конфиге допускаются некорректные строки (т.е., пустые строки, или строки, в которых отсутствует значение после трёх символов "#") - все они будут просто проигнорированы. Разделителем служит символ "#", и, соответственно, он не должен присутствовать ни в пути, ни в имени программ. Если подправить код, можно использовать некоторые другие разделители, например, "^","&","*".

[Quote]

    nikzzzz
  • 215
  • Longevity: 5 years 5 months
  • Posts: 3237
  • REPUTATION:127

    [+] [-]
conty9, aa
74053тогда уже лучше читать данные из внешнего файла конфига.
Да я и писал так, что бы это было легко добавить, я пока еще не разбирался с чтением из файла и парсингом, спасибо за пример. az
Вопросик, ты используешь "calc #n=%i%", а в чем различие от "calc n=%i%" ?
74053можно использовать некоторые другие разделители, например, "^","&","*".
А что надо подправить, чтобы использовать к примеру "," , в путях он не используется, обрамлять в кавычки?

[Quote]

    sergeysvirid
  • 104
  • Longevity: 5 years 6 months
  • Posts: 1881
  • REPUTATION:127

    [+] [-]
  • Location: 65 регион (GMT+11)
Всем здрасте! aa
nikzzzz,
Часто вижу в названии каталога торрент-раздачи присутствие запятой ","
Далеко ходить не буду, взять хотя бы эту раздачу: http://nnmclub.to/forum/viewtopic.php?t=1331710
Каталог с раздачей: Windows Server, Version 1909 (10.0.18363.418)- Оригинальные образы от Microsoft MSDN [En-Ru]
И зачастую пользователи не заморачиваются после скачивания, в какой папке(по какому пути) у них лежит та или иная раздача
ab

[Quote]

    conty9
  • 100
  • Longevity: 5 years 6 months
  • Posts: 1236
  • REPUTATION:127

    [+] [-]
  • Location: Західна Україна
nikzzzz, символ # в CALC означает, что это будет простое целое число, а не реальное. Просто экономия памяти, выделяемой под переменную.
По поводу путей: PеCMD при запуске нормально обработает пути с пробелами. Для правильной обработки прочих символов, как "," - просто нужно обеспечить, чтобы команда EXEC была единственной в строке (используем скобки {} или создаём подпрограмму, при необходимости). Т.е., обеспечиваем правильную интерпретацию синтаксиса отсутствием предварительных комманд, которые могут использовать запятую как разделитель.
Также можно использовать и кавычки. Кроме того, если внешней программе передается путь как параметр, тогда кавычки необходимы.

Page 1 of 2


Display posts:    

Current time is: 07-Jul 13:32

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