| 
    
	
		
		
			| 
			
						
							
								puhpol
								
						
							
				Стаж: 10 летСообщений: 891Репутация: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)...
  200mb. |  
	
								![Ответить с цитатой [Цитировать]](./styles/templates/default/images/lang/ru/icon_quote.gif)  
		 		Отправлено: 16-Фев-2020 16:38
					(спустя 1 час 35 минут)
	
		
		
			| 
			
						
							
								dimo70
								
						
							
				Стаж: 7 лет 11 месяцевСообщений: 3799Репутация:27[+]   [-]Откуда: BG | 
			
				
				puhpol, есть возможность самому добавлять или удалять программы?     _________________
 Подпись отключена за нарушение правил форума
 |  
	
		
		
			| 
			
						
							
								KottoSOFT
								
						
							
				Стаж: 10 летСообщений: 562Репутация:65[+]   [-] | 
			
				
				puhpol,Приветствую, с под папками, то понятно, можно обновить проги скрипты с ключами подправить
 А вот бы оболочку в разобранном виде, что то добавить, что то подправить, под свой набор программ.Картинка
   |  
	
								![Ответить с цитатой [Цитировать]](./styles/templates/default/images/lang/ru/icon_quote.gif)  
		 		Отправлено: 16-Фев-2020 19:57
					(спустя 2 часа 17 минут) 
	
		
		
			| 
			
						
							
								puhpol
								
						
							
				Стаж: 10 летСообщений: 891Репутация:75[+]   [-] | 
			
				
				Как разобрать и изменить:Файл "Prog_Setup.exe" открываем в редакторе ресурсов (ресторатор допустим)
 Если нужно заменить иконку - меняем ресурс "Иконка - 1"
 
  . Сам скрипт это ресурс "SKRIPT > 101" , вытаскиваем ресурс 101 допустим на рабочий стол.
 
  . Открываем ресурс 101 в текстовом редакторе. (советую  сохранить файл с разрешением wsc и открыть его в Notepad++ из этой темы
 Изменяем на свое усмотрение.
 В скрипте прописаны и закоментированны еще два чек бокса, куда можно добавить еще две программы не нарушая разметку окна.
 Сам скрипт с описаниемCALC #XEnvi=0ENVI 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
								
						
							
				Стаж: 10 летСообщений: 3114Репутация:127[+]   [-] | 
			
				
				puhpol,    Я тут решил немного поиграться с 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
  |  
	
		
		
			| 
			
						
							
								nikzzzz
								
						
							
				Стаж: 10 летСообщений: 3114Репутация:127[+]   [-] |  |  
	
		
		
			| 
			
						
							
								puhpol
								
						
							
				Стаж: 10 летСообщений: 891Репутация:75[+]   [-] | 
			
				
				nikzzzz,    Спасибо! Для понимания очень полезно.
  Тот что у меня - для меня понятнее и все же хоть и чуть чуть, но в его создании я  поучавствовал.
   |  
	
		
		
			| 
			
						
							
								puhpol
								
						
							
				Стаж: 10 летСообщений: 891Репутация:75[+]   [-] | 
			
				
				nikzzzz, Твой вариант легче редактировать.Но возникает вопрос: Откуда берется "время выполнения (для прогресса)"?
 Засекать время не вариант, на одной машине 2 минуты на другой 4..... Точность особо не нужна, так визуально видно что что то происходит.
 |  
	
		
		
			| 
			
						
							
								nikzzzz
								
						
							
				Стаж: 10 летСообщений: 3114Репутация:127[+]   [-] | 
			
				
				Без разницы, можешь указать от фонаря, например все единицы поставить, но тогда полоса прогресса будет пропорциональна не времени, а к-ву установленных приложений.74049Но возникает вопрос: Откуда берется "время выполнения (для прогресса)"?
 Засекать время не вариант, на одной машине 2 минуты на другой 4.....
Важно относительное время, например одно приложение ставится в десять раз медленнее другого, пишем для первого 10, для второго 1, реальное время установки не используется.
 |  
	
								![Ответить с цитатой [Цитировать]](./styles/templates/default/images/lang/ru/icon_quote.gif)  
		 		Отправлено: 18-Фев-2020 13:24
					(спустя 1 час 50 минут)
	
		
		
			|  | 
			
				
				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 //Если конфиг не найден, выход из программы
Если совместить с демкой от nikzzzzCALC #i=0CALC #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
								
						
							
				Стаж: 10 летСообщений: 3114Репутация:127[+]   [-] | 
			
				
				conty9,    Да я и писал так, что бы это было легко добавить, я пока еще не разбирался с чтением из файла и парсингом, спасибо за пример.74053тогда уже лучше читать данные из внешнего файла конфига. Вопросик, ты используешь "calc #n=%i%", а в чем различие от "calc n=%i%" ?
 А что надо подправить, чтобы использовать к примеру "," , в путях он не используется, обрамлять в кавычки?74053можно использовать некоторые другие разделители, например, "^","&","*". |  
	
		
		
			| 
			
						
							
								sergeysvirid
								
						
							
				Стаж: 10 летСообщений: 2673Репутация:127[+]   [-]Откуда: 65 регион (GMT+11) | 
			
				
				Всем здрасте!   nikzzzz,
 Часто вижу в названии каталога торрент-раздачи присутствие запятой ","
 Далеко ходить не буду, взять хотя бы эту раздачу: http://nnmclub.to/forum/viewtopic.php?t=1331710
 Каталог с раздачей: Windows Server, Version 1909 (10.0.18363.418)- Оригинальные образы от Microsoft MSDN [En-Ru]
 И зачастую пользователи не заморачиваются после скачивания, в какой папке(по какому пути) у них лежит та или иная раздача
 
   |  
	
		
		
			|  | 
			
				
				nikzzzz, символ # в CALC означает, что это будет простое целое число, а не реальное. Просто экономия памяти, выделяемой под переменную.По поводу путей: PеCMD при запуске нормально обработает пути с пробелами. Для правильной обработки прочих символов, как "," - просто нужно обеспечить, чтобы команда EXEC была единственной в строке (используем скобки {} или создаём подпрограмму, при необходимости). Т.е., обеспечиваем правильную интерпретацию синтаксиса отсутствием предварительных комманд, которые могут использовать запятую как разделитель.
 Также можно использовать и кавычки. Кроме того, если внешней программе передается путь как параметр, тогда кавычки необходимы.
 |  Страница 1 из 3 
	
	
		Текущее время: 31-Окт 23:31 Часовой пояс: UTC + 3  
	| 
		
		Вы не можете начинать темыВы не можете отвечать на сообщения
 Вы не можете редактировать свои сообщения
 Вы не можете удалять свои сообщения
 Вы не можете голосовать в опросах
 Вы не можете прикреплять файлы к сообщениям
 Вы можете скачивать файлы
 
 |  |