PDA

Показать полную графическую версию : MInstAll - Мастер автоустановки приложений


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 [27] 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119

Bond01
31-05-2014, 17:46
IMXO - я бы подумал над этой возможностью. Потому что как я вижу вы хотите из нее сделать полноценную оболочку... (хотя она уже довольно хороша)

Сrack
31-05-2014, 17:55
IMXO - я бы подумал над этой возможностью. »
Не раз думал, bat-ник это универсальный механизм, в нем что угодно можно прописать и до и после установки. Я обычно использую SFX-Macros, он у меня уже много лет, а MInstAll появился как оболочка объединяющая скрипты для автоустановки приложений. Можно сказать, что данные функции реализованы, но только в отдельном приложении.

LonerD
01-06-2014, 19:08
Сrack, подскажите, пожалуйста, как правильно прописать путь запуска.
Запускаю MInstAll из-под Тотал коммандера, то есть существует переменная %commander_path%, возвращающая путь к каталогу Тотала.
Мне нужно запустить скрипт:
%commander_path%\Utilities\AutoHotkey\AutoHotkey.exe "%commander_path%\Scripts\Scripts.ahk"
При записи этой строки MInstAll ругается на ошибку пути ("Указан неверный путь"), а при запуске - выдаёт сообщение "Ошибка запуска приложения" (на русском, а MInstAll использую английский, видимо, недопереведённые фразы)

Сrack
01-06-2014, 19:29
LonerD, Сделайте скриншот, окна с параметрами приложения и ошибки.

LonerD
01-06-2014, 19:43
Сrack,
Скрины.
http://i61.fastpic.ru/big/2014/0601/2f/5ac00444966f04fb77f037ac80c8152f.png
http://i63.fastpic.ru/big/2014/0601/19/9631fa1b20486d432fe9111500002219.png
Если задать абсолютные пути - те же ошибки.

Сrack
01-06-2014, 20:05
Принцип запуска с параметрами такой:
http://jpegshare.net/images/3d/d5/3dd5a81c3063a3e98e2cabc2754fefb1.png (http://jpegshare.net/)


Но тут есть засада, в ini формате, а именно в нем сохраняются профили, не сохраняются кавычки если они идут первым и последним символом, то есть после перезапуска оболочки кавычек не будет, а в данной ситуации они по любому нужны. В пути до приложения кавычки не нужны, а вот в параметрах нужен. Я пару раз сталкивался с такой особенностью, все зависит от приложения которые вы запускаете, попробуйте так, может примет такой параметр со слешем в начале:
http://jpegshare.net/images/fd/ac/fdace0a2f947deff825ff5c0358babd1.png (http://jpegshare.net/)
Или еще вариант добавить кокой нибудь дополнительный не принципиальный параметр, можно попробовать даже не существующий параметр, например так:
http://jpegshare.net/images/f5/1b/f51b8bc20b252cb345ecf86a87201024.png (http://jpegshare.net/)

P.S. Английская версия давно не обновлялась, ответные санкции. :)

LonerD
01-06-2014, 20:30
Сrack,
А отсюда вырисовывается ещё пара проблем.
1. Если даже просто записать:
Patch=%commander_path%\КакаятоПрограмма.exe
то она не запустится.
MInstAll не понимает переменные окружения? :(
2. Провёл эксперимент. Попробовал кинуть файл скрипта в корень диска (то есть пробелов в пути нет, кавычки не нужны).
Patch=E:\AutoHotkey\AutoHotkey.exe
Key=E:\UpdateADOFielder.ahk
Скрипт не запустился.
Дело в том, что путь к скрипту (AutoIt, Autohotkey) - это НЕ ключ и НЕ параметр. Его нужно записывать только в одну строку с исполняемым файлом. То есть в данном случае всю конструкцию нужно записать в поле "Путь к приложению". Но если записать
Patch=E:\AutoHotkey\AutoHotkey.exe E:\UpdateADOFielder.ahk
то всё равно получим "Ошибка запуска приложения" :(

Сrack
01-06-2014, 20:46
Дело в том, что путь к скрипту (AutoIt, Autohotkey) - это НЕ ключ и НЕ параметр. »
Нет, как раз путь к скрипту это первый параметр, запуск как раз так и выглядит
E:\AutoHotkey\AutoHotkey.exe E:\UpdateADOFielder.ahk
Оболочка, формирует эту команду из пути и ключей.

MInstAll не понимает переменные окружения? »
Понимает, что то мне кажется, эта внутренняя переменная, которую использует Тотал Коммандер, а не глобальная, которую видят другие приложения.
В командной строке выполните:
echo %commander_path%
Если путь не отобразится, значит это внутренняя переменная, которую видит только сам Тотал.

Почему так не получилось:
Patch=E:\AutoHotkey\AutoHotkey.exe
Key=E:\UpdateADOFielder.ahk
не могу сказать, т.к. AutoHotkey для меня не знакомая программа, так сразу в ней не разберешься.

LonerD
02-06-2014, 03:06
В командной строке выполните »
Это глобальная переменная, которую видят все (почти все) приложения, запускаемые из-под Total Commander и умеющие работать с переменными окружения.
Если командная строка запускается из-под запущенного Total Commander - то в ней после выполнения указанной команды выводится полный путь к каталогу с Тоталом.
MInstAll запускается из-под Total Commander - но переменных окружения не видит. Надеюсь, в следующей версии MInstAll такая возможность будет добавлена.

Оболочка, формирует эту команду из пути и ключей.
Проблема в том, что Autoit и AutoHotkey не умеют раскрывать переменные окружения в пути к скриптам, потому на во всех программах можно разрывать файл-интерпретатор (ехе-файл) и файл скрипта при записи параметров (то есть помещать параметры в поле параметров). Как в этом плане обстоят дела в MInstAll - пока неясно до появления поддержки переменных окружения.

Оболочка, формирует эту команду из пути и ключей.
Спасибо. С этим вопросом разобрался. Сам так и не понял - почему вначале не сработало с абсолютными путями. Сейчас действительно всё работает.
Насчёт кавычек - в идеале следовало бы сделать их зеркалирование. Слеши не помогли, начал пробовать варианты - в итоге помогла точка после закрыващей кавычки. При указании абсолютных путей скрипт выполняется.

Сrack
02-06-2014, 09:19
LonerD, Первый раз о таком слышу, действительно, есть переменная %commander_path%, проверил на SFX-Macros, если его просто запустить, то такой переменной нет, если через тотал то есть.
LonerD, проверьте, запустите SFX-Macros -> Главное меню -> Справка -> Переменные. Есть там commander_path ?
Если есть, то и в MInstAll должно работать, т.к. функция одна и та же.

LonerD, В MInstAll проверьте так:
http://jpegshare.net/images/5c/4c/5c4cd9e1b958b17e7e92afe4fb2d1ff9.png (http://jpegshare.net/)
но тут нельзя точно сказать, кто конвертирует переменную MInstAll или командная строка, еще раз повторюсь, если в SFX-Macros есть переменная, то и в MInstAll должна работать.

Проблема в том, что Autoit и AutoHotkey не умеют раскрывать переменные окружения в пути к скриптам, потому на во всех программах можно разрывать файл-интерпретатор (ехе-файл) и файл скрипта при записи параметров (то есть помещать параметры в поле параметров). Как в этом плане обстоят дела в MInstAll - пока неясно до появления поддержки переменных окружения. »
MInstAll не передает переменные окружения в параметрах, он их сам конвертирует в путь, и передает как путь.

Сrack
02-06-2014, 17:46
LonerD, Проделал эксперимент на другой ОС, нет переменной %commander_path%. Запускаю Тотал Коммандер с правами администратора, есть переменная %commander_path%.
В общем все понятно, MInstAll изначально запускается с правами администратора, Тотал нет.
Т.к. у MInstAll больше прав, Тотал не может ему передать переменные, подобная ситуация с перетаскиванием файлов из проводника запущенного с обычными правами.
Тут два варианта решения: понизить права для MInstAll или повысить для Тотал Коммандера. Первый сразу отпадает.

Plum
10-06-2014, 20:42
Тут два варианта решения: понизить права для MInstAll или повысить для Тотал Коммандера. Первый сразу отпадает. »
А может просто добавить %Commander_Path% в глобальный список системных переменных (при условии, что TotalCommander находится в каком-то постоянном месте) или, при запуске с флешки, запускать Commander батником, в котором и прописать установку переменной %Commander_Path% на путь, существующий в данный момент.
Что-то типа этого:
set "Commander_Path=%~d0\TotalCommanderPortable"
start TotalCommanderPortable\totalcmd.exe

Сrack
10-06-2014, 20:49
А может просто добавить %Commander_Path% в глобальный список системных переменных »
Не известно для чего это нужно LonerD, если бы Total Commander был по постоянному пути, то переменная как бы и не нужна.

chymax3m
10-06-2014, 21:47
%Commander_Path% - это внутренняя переменная Тотала, которую он интерпретирует как путь к папке с главным исполняющим файлом. Сдесь можно посмотреть Переменные, используемые в TC (http://flint-inc.ru/tcinfo/all_cmd.ru.htm#EnvVar)

Plum
11-06-2014, 02:31
Не известно для чего это нужно LonerD, если бы Total Commander был по постоянному пути, то переменная как бы и не нужна. »
Это просто попытка вставить свои 5 копеек :shuffle: по теме, как сделать переменную %commander_path% системной. Хотя тоже не совсем понимаю необходимость этого.
У меня из под Commandera и без этого все запускается без каких-то проблем, не смотря на то, что в моей сборке более 60-и программ (не считая плагинов и скриптов), которые одинаково работают как с харда, так и с флешки.

LonerD
15-06-2014, 02:50
Т.к. у MInstAll больше прав »
Вот она в чём петрушка...

Тут два варианта решения: понизить права для MInstAll или повысить для Тотал Коммандера. Первый сразу отпадает. »
Почему так категорично? Что не так в первом варианте? Попробовал - на первый взгляд работает.

Не известно для чего это нужно LonerD »
Если вкратце - у меня в Тотале джентельменский набор программ "всё своё ношу с собой". Разумеется, со временем выходят новые версии программ. MInstAll предположительно должен выступать оболочкой для запуска скриптов обновления программ, можно выбрать и запустить по очереди несколько скриптов-обновлений. Разумеется, в силу соблюдения портативности - всё лежит внутри каталога Тотала и соответственно связано с внутренними переменными.

Сrack
Я правильно понимаю, что в MInstAll нет таймера (как с WIP и BSPI)? Хотелось бы, чтобы при запуске программы если ничего не трогать - то процесс установки компонентов, выбранных по умолчанию, запускался бы автоматически по истечении определённого промежутка времени. В контексте автоматизации это очень актуально - например, запуск установки программ после установки или перезагрузки системы...

Сrack
15-06-2014, 21:32
Почему так категорично? Что не так в первом варианте? Попробовал - на первый взгляд работает. »
Как реализовали? Категорично, потому, что повышение прав в оболочки реализовано с помощью манифеста, то есть выбор прав задается до компиляции приложения, опционального выбора прав не предусмотрено.

Я правильно понимаю, что в MInstAll нет таймера (как с WIP и BSPI)? Хотелось бы, чтобы при запуске программы если ничего не трогать - то процесс установки компонентов, выбранных по умолчанию, запускался бы автоматически по истечении определённого промежутка времени. »
Как нет? А так:
MInst.exe "{Patch}\profiles\Software.ini" /t 20
Через 20 секунд запустится автоматическая установка приложений из профиля Software.ini, что бы не ждать таймер, можно нажать "Отменить" и тут же "Выполнить".

LonerD
16-06-2014, 19:32
Как реализовали? »
Попробовал самый простой вариант - в манифесте прописал asInvoker. На первый взгляд переменные видятся, всё запускается и отрабатывает...
Других рабочих способов пока не знаю. Пробовал запустить от имени пользователя с помощью PsExec - не запускается совсем.

Через 20 секунд запустится автоматическая установка »
Спасибо.

Refer
19-06-2014, 07:58
Добрый день!
Сейчас путь к приложению имеет вид типа {Patch}\software\antivirus\avg\avg_free_x86_all_2014_4577a7359.exe

А возможно ли реализовать возможность чтобы путь к приложению имел вид типа
{Patch}\software\antivirus\avg\avg_free_x86_all_2014_*.exe

Это было бы удобнее, так как постоянно выходят обновления программ, и ручками править пути в каждом пункте - утомительно.

Сrack
19-06-2014, 10:29
А возможно ли реализовать возможность чтобы путь к приложению имел вид типа
{Patch}\software\antivirus\avg\avg_free_x86_all_2014_*.exe »
Думаю, так не получится.

Это было бы удобнее, так как постоянно выходят обновления программ, и ручками править пути в каждом пункте - утомительно. »
Я в таких случаях переименовываю инсталлятор, так что бы не содержал версию, например так avg_free_x86.exe, при скачивании новой версии просто заменяю существующий файл. Но все равно приходится править версию в профиле.




© OSzone.net 2001-2012