[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Набор программ которые лично мне просто не обходимы в системе. Собрано в кучку, оболочка для установки сделана 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.

[Цитировать]

    dimo70
  • 17296
  • Стаж: 7 лет
  • Сообщений: 3784
  • Репутация:27

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

_________________
Подпись отключена за нарушение правил форума

[Цитировать]

    KottoSOFT
  • 206
  • Стаж: 9 лет
  • Сообщений: 562
  • Репутация:65

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

Картинка

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

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

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

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

    [+] [-]
Как разобрать и изменить:
Файл "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

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация: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

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

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

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

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

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

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

[Цитировать]

    puhpol
  • 2
  • Стаж: 10 лет
  • Сообщений: 892
  • Репутация:75

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

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

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

[Цитировать]

    Гость
  • Репутация:0

    [+] [-]
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
В конфиге допускаются некорректные строки (т.е., пустые строки, или строки, в которых отсутствует значение после трёх символов "#") - все они будут просто проигнорированы. Разделителем служит символ "#", и, соответственно, он не должен присутствовать ни в пути, ни в имени программ. Если подправить код, можно использовать некоторые другие разделители, например, "^","&","*".

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 9 лет
  • Сообщений: 3114
  • Репутация:127

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

[Цитировать]

    sergeysvirid
  • 104
  • Стаж: 9 лет
  • Сообщений: 2584
  • Репутация:127

    [+] [-]
  • Откуда: 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

[Цитировать]

    Гость
  • Репутация:0

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

Страница 1 из 3


Показать сообщения:    

Текущее время: 03-Дек 20:57

Часовой пояс: UTC + 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы