Autorun
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Выложил версию с поправленным плагином sysinfo, должна работать как та версия от 7 ноября.
По-поводу скорости, если интересно, выложил версию, в которой препроцессинг выполняется после проверки наличия /S= в комстроке, т.е. при запуске процесса поиска препроцессинг не производится. Также при запуске основного процесса показывается время выполнения препроцессинга.
При тестировании я никакой разницы не заметил. После этого поставил счетчик, на моей системе и скрипте чуть больше 100 строк время препроцессинга занимает в среднем 0,09 мс. Такую задержку визуально заметить невозможно. На медленных системах и более длинных скриптах время может быть больше, но вряд ли выйдет за десяток миллисекунд.
AutorunFinalizeSection никак не влияет, все директивы обрабатываются на этапе препроцессинга.
По-поводу скорости, если интересно, выложил версию, в которой препроцессинг выполняется после проверки наличия /S= в комстроке, т.е. при запуске процесса поиска препроцессинг не производится. Также при запуске основного процесса показывается время выполнения препроцессинга.
При тестировании я никакой разницы не заметил. После этого поставил счетчик, на моей системе и скрипте чуть больше 100 строк время препроцессинга занимает в среднем 0,09 мс. Такую задержку визуально заметить невозможно. На медленных системах и более длинных скриптах время может быть больше, но вряд ли выйдет за десяток миллисекунд.
AutorunFinalizeSection никак не влияет, все директивы обрабатываются на этапе препроцессинга.
Loopback
Докладываю. SysInfo работает. GetWMIValue работает без кавычек для имени параметра.
Тестовую версию опробовал и визуально разницу уловить с предыдущей версией не смог. А время при запуске ТС по сути ничего не даёт (у меня 0,4 мс), т. к. не с чем сравнивать. По идее время нужно сверять у 2-х версий при вызове из запущенного ТС. Впрочем, я установил Autorun на чистый ТС и особой разницы со скоростью до установки не заметил, а значит, на скорость в моей сборке влияют другие плагины.
Ещё пару моментов.
1)Почему-то окно Everything не скрывается. Как будто сама программа блокирует скрытие. Нельзя её как-то принудить? С минимизацией, например, проблем нет.
Причём такое поведение было не всегда. Закономерности по версиям и т. п. не выявил.
2) Ранее поднимался вопрос раскрытия пустых переменных среды в рамках одного пути в командах (прежде всего ShellExec и Process...). Пример:Такая команда не выполнится. А хотелось бы. В рамках ТС этот момент Гислер по нашей инициативе исправил.
Докладываю. SysInfo работает. GetWMIValue работает без кавычек для имени параметра.
Тестовую версию опробовал и визуально разницу уловить с предыдущей версией не смог. А время при запуске ТС по сути ничего не даёт (у меня 0,4 мс), т. к. не с чем сравнивать. По идее время нужно сверять у 2-х версий при вызове из запущенного ТС. Впрочем, я установил Autorun на чистый ТС и особой разницы со скоростью до установки не заметил, а значит, на скорость в моей сборке влияют другие плагины.
Ещё пару моментов.
1)
Код: Выделить всё
ShellExec /SW_HIDE /W:1 /T "%COMMANDER_PATH%\Utils\Everything\Everything.exe"Причём такое поведение было не всегда. Закономерности по версиям и т. п. не выявил.
2) Ранее поднимался вопрос раскрытия пустых переменных среды в рамках одного пути в командах (прежде всего ShellExec и Process...). Пример:
Код: Выделить всё
SetEnv EMPTY
ShellExec %SYSTEMROOT%\SYSTEM32\notepad%EMPTY%.exeАвтору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ну и хорошо.
По скорости, конечно можно и эту миллисекунду срезать, если совсем убрать проверку директивы, но не думаю, что при таких значениях есть смысл.
Это действительно было неудобно.
По скорости, конечно можно и эту миллисекунду срезать, если совсем убрать проверку директивы, но не думаю, что при таких значениях есть смысл.
Параметр скрытия задается в системной функции запуска программы. Если запускаемая программа на него не отреагировала, значит в ней есть какой-то блокирующий механизм. Никакого дополнительного принуждения не предусмотрено. Наверно, в этом случае только пытаться скрыть после запуска, если она вообще это позволит.Flasher писал(а):Нельзя её как-то принудить?
Мне тожеFlasher писал(а):А хотелось бы.
Видимо, нет.Loopback писал(а):но не думаю, что при таких значениях есть смысл.
Флаг снимается из разных программ управления окнами.Loopback писал(а):Наверно, в этом случае только пытаться скрыть после запуска, если она вообще это позволит.
Эмм. В смысле "было"? Я прошу это исправить.Loopback писал(а):Мне тожеЭто действительно было неудобно.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Значит только прятать после запуска. Но эта задача уже явно за пределами ShellExecute. Это надо искать окно запущенной программы и посылать ему сообщение. В принципе на Autoit должно решаться просто.Flasher писал(а):Флаг снимается из разных программ управления окнами.
Я это и имел в виду. Раз это теперь работает в тотале, нужно чтобы работало и здесь. Буду смотреть.Flasher писал(а):Эмм. В смысле "было"? Я прошу это исправить.
Ага. Или на AHK.Loopback писал(а):В принципе на Autoit должно решаться просто.
Отлично. Ждём'с.Loopback писал(а):Раз это теперь работает в тотале, нужно чтобы работало и здесь.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
-
enginigger
- Сообщения: 44
- Зарегистрирован: Сб дек 18, 2010 12:27
Loopback
у Everything есть параметр комстроки -startup, при котором он запускается в фоне.
У меня запускается так:
А выгружается так:
Код: Выделить всё
ShellExec /SW_HIDE /W:1 /T "%COMMANDER_PATH%\Utils\Everything\Everything.exe"У меня запускается так:
Код: Выделить всё
ShellExec %commander_path%\prg\everything\everything.exe -startupКод: Выделить всё
Pragma AutorunFinalizeSection
ShellExec %commander_path%\prg\everything\everything.exe -exitА при чём тут Loopback, если запрос мой?
Даже мысли не было искать по слову "фоновый" и уж тем более "startup". Беру на вооружение.
А вот выгружать лучше так:
Даже мысли не было искать по слову "фоновый" и уж тем более "startup". Беру на вооружение.
А вот выгружать лучше так:
Код: Выделить всё
If ProcessExist /F ...
ProcessTerminate /F /TT /A ...
EndIfАвтору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
-
enginigger
- Сообщения: 44
- Зарегистрирован: Сб дек 18, 2010 12:27
Пардон, промазалFlasher писал(а):А при чём тут Loopback, если запрос мой?
У меня с моим вариантом проблем не было, ошибок не выскакивало, но Ваш тоже стоит рассмотреть.Flasher писал(а):А вот выгружать лучше так:Код: Выделить всё
If ProcessExist /F ... ProcessTerminate /F /TT /A ... EndIf
enginigger
Мой вариант по факту выгружает все процессы по заданному пути при наличии. Ваш лично у меня запускает новый экземпляр, торчит в процессах 25 сек. и выходит без закрытия остальных.
И если хотите полной портабельности, путь в кавычки брать таки стоит.
Мой вариант по факту выгружает все процессы по заданному пути при наличии. Ваш лично у меня запускает новый экземпляр, торчит в процессах 25 сек. и выходит без закрытия остальных.
И если хотите полной портабельности, путь в кавычки брать таки стоит.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
-
enginigger
- Сообщения: 44
- Зарегистрирован: Сб дек 18, 2010 12:27
Ваш вариант у меня вызывает ошибку "runtime error 207 at 02eb8e32" при закрытии ТС.Flasher писал(а): Мой вариант по факту выгружает все процессы по заданному пути при наличии. Ваш лично у меня запускает новый экземпляр, торчит в процессах 25 сек. и выходит без закрытия остальных.
СогласенFlasher писал(а): И если хотите полной портабельности, путь в кавычки брать таки стоит.
А вы прописали свой путь вместо ...?enginigger писал(а):Ваш вариант у меня вызывает ошибку "runtime error 207 at 02eb8e32" при закрытии ТС.
Код: Выделить всё
If ProcessExist /F '%commander_path%\prg\everything\everything.exe' Then
ProcessTerminate /F /TT /A '%commander_path%\prg\everything\everything.exe'
EndIfАвтору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
-
enginigger
- Сообщения: 44
- Зарегистрирован: Сб дек 18, 2010 12:27
