Показать полную графическую версию : MInstAll - Мастер автоустановки приложений
s600, Что вы имеете ввиду? Выполнение консольных команд непосредственно из оболочки, минуя bat-файлы?
Через консольные команды реализованы пункты "Перезагрузка" и "Выключение".
В поле "Путь к приложению" указывайте путь %WinDir%\system32\cmd.exe а в ключах запуска вашу команду, только есть один нюанс, перед вашей командой нужно указать стандартный ключ /с он как раз передает в cmd.exe вашу команду.
В вашем случае это будет выглядеть так:
http://jpegshare.net/images/22/23/22236cd40d55fecf13b58fecfec20262.png (http://jpegshare.net/)
При работе с реестром есть нюанс, т.к. оболочка 32-битная, на 64-битной ОС данные попадут в 32-битную часть реестра, некоторые системные настройки не будут работать из 32-битной ветки реестра. Для решения этой задачи, в программе реализован метод импорта их reg-файлов, при этом есть ключ /x64, который направляет информацию в 64-битную ветку реестра, на 32-битной ОС этот ключ не учитывается.
http://jpegshare.net/images/68/7f/687fa919184423f23d19cf98bdeca3c8.png (http://jpegshare.net/)
Если вы пытаетесь реализовать эти команды через bat-файл, то они не срабатывают, т.к. программа при запуске bat-файла назначает текущий каталог на папку в которой лежит bat-файл, и соответственно он не видит некоторые команды, т.к. они лежат в папке %WinDir%\system32.
В вашем случае, нужно добавить в bat-ник переход в %WinDir%\system32 перед вызовом команды reg или вызывать ее указав прямой путь так
%WinDir%\system32\reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v "AUOptions" /t REG_DWORD /d "0x1" /f
Тут опять же информация попадет в 32-битную ветку реестра, для доступа к 64-битной ветке реестра, надо вызывать через Sysnative примерно так:
%WinDir%\Sysnative\reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v "AUOptions" /t REG_DWORD /d "0x1" /f
Сам я в подобных ситуациях использую исключительно SFX-Macros вызывая cmd.exe так %WinDir%\system32\cmd.exe или имитируя 64-битный процесс так %WinDir%\Sysnative\cmd.exe.
В SFX-Macros реализована виртуализация 64-битной командной строки при вызове %WinDir%\Sysnative\cmd.exe в качестве текущего каталога назначается 64-битная system32 которую нельзя увидеть из 32-битного приложения.
Спасибо большое помогло, а есть еще способы установки?
А то к почти каждой программе у меня идет файл install.cmd с настройками. Есть ли какой-нибуть ключ или способ, чтоб не изменять install.cmd? Пользовался GPInst теперь пытаюсь перейти MInstAll и сталкиваюсь с проблемами.
а есть еще способы установки?
А то к почти каждой программе у меня идет файл install.cmd с настройками. Есть ли какой-нибуть ключ или способ, чтоб не изменять install.cmd? »
Только если так:
http://jpegshare.net/images/c8/d1/c8d104b588ae0c94f57b04a83f17dd73.png (http://jpegshare.net/)
В таком случае в качестве текущего каталога будет %WinDir%\system32 и команды на типа reg будут работать.
Но так не удобно, и не будет работать автоматическая проверка наличия дистрибутива и проверка правильности путей.
Сrack, спасибо за примеры буду дальше разбираться и адаптировать свои причиндалы под MInstAll.
Уважаемый Сrack, нельзя ли сделать по проще запуск консольных программ, это прям беда почти каждую приходится переписывать. GPInst таких проблем не было.
s600, Пришлите пример bat-файла с командами которые не работают. На какой ОС возникают проблемы?
Сам я не использую bat-ники, т.к. с ними постоянно проблемы, здесь работаю, здесь не работаю. А если он не сработает, меня зарплаты лишат, поэтому я написал для себя SFX-Macros.
Сейчас проверил работу через bat-файл, на WinXPx86, Win7x64, Win8.1x86 команда reg отработала на всех нормально.
К примеру на Win7x64 не срабатывает полностью Reboot.cmd содержанием:
@echo off
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v "AUOptions" /t REG_DWORD /d "0x1" /f
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "WinSat" /t REG_SZ /d "winsat dwm -xml results.xml" /f
shutdown /r /t 0 /f
пришлось переписать:
@echo off
SetLocal EnableExtensions DisableDelayedExpansion
if not defined ProgramW6432 (
%WinDir%\system32\reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v "AUOptions" /t REG_DWORD /d "0x1" /f
%WinDir%\system32\reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "WinSat" /t REG_SZ /d "winsat dwm -xml results.xml" /f
) else (
%WinDir%\Sysnative\reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v "AUOptions" /t REG_DWORD /d "0x1" /f
%WinDir%\Sysnative\reg.exe Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v "WinSat" /t REG_SZ /d "winsat dwm -xml results.xml" /f
)
shutdown /r /t 0 /f
exit
Я многих фишек не знаю но мне удобней с ними работать.
До MInstAll использовал WPI 8 и GPInst.
Ваша программа оказалось удобней.
s600, В вашем случае данные попадали в 32-битную часть реестра, что касается системных настроек (твиков) то да, надо это учитывать при написании bat-ников.
Нужно учитывать, что bat(cmd)-файлы запускает 32-битное приложение, соответственно для них значение переменной %ProgramFiles% будет равно "C:\Program Files (x86)", а если тот же bat-ник запустить из 64-битного проводника Windows то для него значение переменной %ProgramFiles% будет равно "C:\Program Files". Аналогичная ситуация и с импортом данных в реестр.
Большая часть приложений, это 32-битные приложения, которые хранят свои настройки в 32-битной части реестра, и устанавливаются в 32-битную %ProgramFiles% то есть в "C:\Program Files (x86)".
В программе не хватает опции "Имитировать 64-битный процесс", пока ее нет.
1. При запуске проги она сканирует профиль и подгружает иконки очень долго сек 5-10 сек (это кажется ерунда, но когда каждый день ставишь софт это немножко раздражает). При переходе между профилями задержек нет все быстро. Только при первом запуске. »
Попробуйте новый оптимизированный способ загрузки профилей, изменения будут после пересохранения профилей, сообщите о результатах.
s600, Пробуйте, для cmd и bat-файлов, для отключения редиректа на 64-битной ОС, нужно указать ключ /x64
этот ключ обрабатывает сама оболочка MInstAll, он не передается в целевое приложение, на 32-битной ОС этот ключ не учитывается.
Версия для теста:
http://checkdevice.narod.ru/download/beta/MInst.zip
Galavarez
22-04-2014, 14:58
Попробуйте новый оптимизированный способ загрузки профилей, изменения будут после пересохранения профилей, сообщите о результатах. »
http://checkdevice.narod.ru/download/beta/MInst.zip [post=2341478]»
По первым впечатлением действительно быстро. Потыкаю в разные машины посмотрю как себя поведет.
Сrack спасибо, проверил на разно битных системах работу MInst с cmd и bat, прошло все на ура.
Silent key finder (http://checkdevice.narod.ru/index/download/0-2) 1.0.0.10 Добавлены сигнатуры инсталляторов: WiX Toolset, Novostrim CreateInstall, Pantaray QSetup, Excelsior Installer, Softeza Actual Installer.
teapot08
24-04-2014, 14:43
использую сей софт на пк и очень доволен.
автору - спасибо за труд.
теперь вот думаю софт перенести на флешку.
флешка на 32 гиг.
планируется сделать ее как бы универсальной, то есть мольтифлешку с .исо образами ос и софтом для работы в дос + свой софт в .ехе
то есть загружаюсь в дос идет установка ос, в среде вин сразу запускается MInstAll при установки влешку в порт.
мультифлешку я сделал, теперь осталось сделать задуманное с MInstAll
думаю понятно объяснил.
получиться ли так сделать?
создал:
[Autorun]
Open=MInst.exe
Icon=MInst.exe
но запуск не происходит.
запускается папка.
но значок флешки сменился на значок MInst.exe
путь к MInst.exe указал правильно.
teapot08, Вот тема:
http://forum.oszone.net/thread-128960.html
Пример bat-файла который запустит оболочку со сменного диска:
@echo off
for %%D in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @if exist %%D:\MInstAll\MInst.exe set DiskRoot=%%D:
%DiskRoot%\MInstAll\MInst.exe /t 0
exit
Это автозапуск профиля по умолчанию, можно запустить с любым профилем, на пример так:
%DiskRoot%\MInstAll\MInst.exe %DiskRoot%\MInstAll\Profiles\AutoSetup.ini /t 0
Где 0 - это задержка в секундах до начала запуска установки.
-------
Вижу, вы про AutoRun.inf, так его давно прикрыли для флешек, на CD/DVD система все равно сама не запустит, сначала спросит.
teapot08
24-04-2014, 16:29
да мне бы просто сам MInst.exe запустить при подключении флешки, а не процесс установки софта.
оказывается это довольно сложно, ну ладно, буду вручную по ярлыку MInst.exe кликать.
MInstAll (http://checkdevice.narod.ru/index/download/0-2) 1.0.1.18 История изменений (http://checkdevice.narod.ru/index/minstall_history/0-28)
Сrack, Как задать запуск через FirstLogonCommands.
Shift85, Я сам не пробовал, но наверно так же, как и через SetupComplete, пример на два поста выше #561.
MInstAll (http://checkdevice.narod.ru/index/download/0-2) 1.0.1.20 История изменений (http://checkdevice.narod.ru/index/minstall_history/0-28)
Подскажите, пожалуйста, только у меня после версии 1.0.1.15 не обрабатывается переменная {P}? Я использую {P} и {Patch}, в 1.0.1.15 все работает, в последующих только {Patch}.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.