Страница 79 из 243
Добавлено: Пт янв 11, 2019 13:23
Loopback
Выложил версию с поправленным плагином sysinfo, должна работать как та версия от 7 ноября.
По-поводу скорости, если интересно, выложил
версию, в которой препроцессинг выполняется после проверки наличия /S= в комстроке, т.е. при запуске процесса поиска препроцессинг не производится. Также при запуске основного процесса показывается время выполнения препроцессинга.
При тестировании я никакой разницы не заметил. После этого поставил счетчик, на моей системе и скрипте чуть больше 100 строк время препроцессинга занимает в среднем 0,09 мс. Такую задержку визуально заметить невозможно. На медленных системах и более длинных скриптах время может быть больше, но вряд ли выйдет за десяток миллисекунд.
AutorunFinalizeSection никак не влияет, все директивы обрабатываются на этапе препроцессинга.
Добавлено: Пт янв 11, 2019 16:04
BeTeP
Loopback писал(а):Думаю да, я так понимаю, интересен режим MOVE_LEGACY? Поскольку MOVE_RIGHT делал то, что сейчас в тотале по-умолчанию.
Я в этих режимах не очень разбираюсь.

Меня интересует перемещение кнопки в место, где она была до версии 7.50.
Добавлено: Пт янв 11, 2019 16:37
Loopback
BeTeP
Да, это MOVE_LEGACY. Хорошо, поправлю, но наверно не сразу сейчас, там надо кое-что переделать.
Добавлено: Пт янв 11, 2019 20:08
Flasher
Loopback
Докладываю. SysInfo работает. GetWMIValue работает без кавычек для имени параметра.
Тестовую версию опробовал и визуально разницу уловить с предыдущей версией не смог. А время при запуске ТС по сути ничего не даёт (у меня 0,4 мс), т. к. не с чем сравнивать. По идее время нужно сверять у 2-х версий при вызове из запущенного ТС. Впрочем, я установил Autorun на чистый ТС и особой разницы со скоростью до установки не заметил, а значит, на скорость в моей сборке влияют другие плагины.
Ещё пару моментов.
1)
Код: Выделить всё
ShellExec /SW_HIDE /W:1 /T "%COMMANDER_PATH%\Utils\Everything\Everything.exe"
Почему-то окно Everything не скрывается. Как будто сама программа блокирует скрытие. Нельзя её как-то принудить? С минимизацией, например, проблем нет.
Причём такое поведение было не всегда. Закономерности по версиям и т. п. не выявил.
2) Ранее поднимался вопрос раскрытия пустых переменных среды в рамках одного пути в командах (прежде всего ShellExec и Process...). Пример:
Код: Выделить всё
SetEnv EMPTY
ShellExec %SYSTEMROOT%\SYSTEM32\notepad%EMPTY%.exe
Такая команда не выполнится. А хотелось бы. В рамках ТС этот момент Гислер по нашей инициативе исправил.
Добавлено: Сб янв 12, 2019 12:38
Loopback
Ну и хорошо.
По скорости, конечно можно и эту миллисекунду срезать, если совсем убрать проверку директивы, но не думаю, что при таких значениях есть смысл.
Flasher писал(а):Нельзя её как-то принудить?
Параметр скрытия задается в системной функции запуска программы. Если запускаемая программа на него не отреагировала, значит в ней есть какой-то блокирующий механизм. Никакого дополнительного принуждения не предусмотрено. Наверно, в этом случае только пытаться скрыть после запуска, если она вообще это позволит.
Flasher писал(а):А хотелось бы.
Мне тоже

Это действительно было неудобно.
Добавлено: Сб янв 12, 2019 12:50
Flasher
Loopback писал(а):но не думаю, что при таких значениях есть смысл.
Видимо, нет.
Loopback писал(а):Наверно, в этом случае только пытаться скрыть после запуска, если она вообще это позволит.
Флаг снимается из разных программ управления окнами.
Loopback писал(а):Мне тоже

Это действительно было неудобно.
Эмм. В смысле "было"? Я прошу это исправить.

Добавлено: Сб янв 12, 2019 14:19
Loopback
Flasher писал(а):Флаг снимается из разных программ управления окнами.
Значит только прятать после запуска. Но эта задача уже явно за пределами ShellExecute. Это надо искать окно запущенной программы и посылать ему сообщение. В принципе на Autoit должно решаться просто.
Flasher писал(а):Эмм. В смысле "было"? Я прошу это исправить.
Я это и имел в виду. Раз это теперь работает в тотале, нужно чтобы работало и здесь. Буду смотреть.
Добавлено: Сб янв 12, 2019 14:39
Flasher
Loopback писал(а):В принципе на Autoit должно решаться просто.
Ага. Или на AHK.
Loopback писал(а):Раз это теперь работает в тотале, нужно чтобы работало и здесь.
Отлично. Ждём'с.
Добавлено: Пн янв 14, 2019 16:25
enginigger
Loopback
Код: Выделить всё
ShellExec /SW_HIDE /W:1 /T "%COMMANDER_PATH%\Utils\Everything\Everything.exe"
у Everything есть параметр комстроки -startup, при котором он запускается в фоне.
У меня запускается так:
Код: Выделить всё
ShellExec %commander_path%\prg\everything\everything.exe -startup
А выгружается так:
Код: Выделить всё
Pragma AutorunFinalizeSection
ShellExec %commander_path%\prg\everything\everything.exe -exit
Добавлено: Пн янв 14, 2019 23:31
Flasher
А при чём тут
Loopback, если запрос мой?
Даже мысли не было искать по слову "фоновый" и уж тем более "startup". Беру на вооружение.
А вот выгружать лучше так:
Код: Выделить всё
If ProcessExist /F ...
ProcessTerminate /F /TT /A ...
EndIf
Добавлено: Вт янв 15, 2019 09:01
enginigger
Flasher писал(а):А при чём тут Loopback, если запрос мой?
Пардон, промазал
Flasher писал(а):А вот выгружать лучше так:
Код: Выделить всё
If ProcessExist /F ...
ProcessTerminate /F /TT /A ...
EndIf
У меня с моим вариантом проблем не было, ошибок не выскакивало, но Ваш тоже стоит рассмотреть.
Добавлено: Вт янв 15, 2019 09:17
Flasher
enginigger
Мой вариант по факту выгружает все процессы по заданному пути при наличии. Ваш лично у меня запускает новый экземпляр, торчит в процессах 25 сек. и выходит без закрытия остальных.
И если хотите полной портабельности, путь в кавычки брать таки стоит.
Добавлено: Вт янв 15, 2019 09:50
enginigger
Flasher писал(а):
Мой вариант по факту выгружает все процессы по заданному пути при наличии. Ваш лично у меня запускает новый экземпляр, торчит в процессах 25 сек. и выходит без закрытия остальных.
Ваш вариант у меня вызывает ошибку "runtime error 207 at 02eb8e32" при закрытии ТС.
Flasher писал(а):
И если хотите полной портабельности, путь в кавычки брать таки стоит.
Согласен
Добавлено: Вт янв 15, 2019 10:01
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
Добавлено: Вт янв 15, 2019 11:59
enginigger
Flasher писал(а):А вы прописали свой путь вместо ...?
Конечно

.
Запускается нормально, закрывается с ошибкой. Autorun последний, 2.03а, Win7x64, TC 9.21a, Everything 1.4.1.924 x64