Page 32 of 55
Renewal — автообновление Far и внешних плагинов
Posted: Fri 03 Feb, 2012 15:07
by artemsen
Renewal — автообновление Far и внешних плагинов
Posted: Fri 25 Dec, 2020 15:42
by Pasha_ZZZ
Latest post of the previous page:
vodek wrote: ↑Wed 23 Dec, 2020 19:51прогресса проверки то нет
Куда он делся? Макрос нажимает кнопку Проверить в начале. И потом, если обнов нет - Закрыть в конце. Прогресс он не убирает.
Renewal — автообновление Far и внешних плагинов
Posted: Fri 25 Dec, 2020 22:49
by vodek
Pasha_ZZZ, не знаю куда делся прогресс? Я не брал.
Renewal — автообновление Far и внешних плагинов
Posted: Sun 27 Dec, 2020 09:25
by bigvax
Привет!
Выявил ошибку в новой версии плагина, когда в системе Comspec указывает не на cmd.exe.
У меня в частности стоит tcc.exe (Take Command от
Jpsoft).
В этом случае после закрытия консольного окна FARа, ничего не происходит, и не появляется модальное окошко Винды, о том что файл был обновлен.
При переписывании Comspec на cmd.exe - все работает.
Renewal — автообновление Far и внешних плагинов
Posted: Sun 27 Dec, 2020 10:29
by 2useven10
bigvax, Плагин при обновлении фар создаёт файл
%TEMP%\far_renewalXX\update,cmd (XX - 64 или 32)
Попробуйте выполнить в комстроке far
cmd.exe /C "путь к файлу"
Когда CopmSpec указывает на TCC, что при этом произойдёт?
И что произойдёт если просто выполнить файл по Enter (в TCC)?
Renewal — автообновление Far и внешних плагинов
Posted: Mon 28 Dec, 2020 20:59
by bigvax
2useven10 wrote: ↑Sun 27 Dec, 2020 10:29
Попробуйте выполнить в комстроке far
cmd.exe /C "путь к файлу"
Когда CopmSpec указывает на TCC, что при этом произойдёт?
И что произойдёт если просто выполнить файл по Enter (в TCC)?
В окне ТСС (фар, разумеется, не запущен)
cmd.exe /c "C:\{TMP}\far_renewal64\update.cmd"
Все выполняется, в том числе:
msg max "Обновление Far Manager завершено." & rem start "C:\Program Files\Far\Far.exe" "C:\Program Files\Far\Far.exe"
cоответственно появляется модальное окошко «Обновление завершено»
Прямой запуск update.cmd из папки где оно лежит - тоже отрабатывает, что в принципе, ожидаемо, т.к. тот-же TCC настроен, на выполнение .bat и .cmd через cmd.exe, а вот .btm - выполняет уже сам.
Т.е. напрямую все выполняется, а вот в рабочей оснастке почему-то нет...
Renewal — автообновление Far и внешних плагинов
Posted: Mon 28 Dec, 2020 22:09
by 2useven10
bigvax wrote: ↑Mon 28 Dec, 2020 20:59
В окне ТСС (фар, разумеется, не запущен)
Я как раз хотел увидеть когда фар разумеется запущен. Т.е. из комстроки фар.
Renewal — автообновление Far и внешних плагинов
Posted: Mon 28 Dec, 2020 22:21
by 2useven10
И запуск по Enter тоже из под фар.
И, кстати, TCC полноразмерный или TCC/LE?
Это к вопросу воспроизведения...
Renewal — автообновление Far и внешних плагинов
Posted: Sun 03 Jan, 2021 14:20
by bigvax
2useven10 wrote: ↑Mon 28 Dec, 2020 22:21
И запуск по Enter тоже из под фар.
Понял, сейчас сделаю.
2useven10 wrote: ↑Mon 28 Dec, 2020 22:21
И, кстати, TCC полноразмерный или TCC/LE?
Это к вопросу воспроизведения...
Полноразмерный, но именно один голый TCC без самой оболочки Take Command - только сам TCC c нужными ему dll и прочим.
Если надо могу показать состав рабочего комплекта и конфиги.
Code: Select all
C:\>ver /r
TCC 27.00.16 x64 Windows 10 [Version 10.0.19042.685]
TCC Build 16 Windows 10 Build 19042
Зарегистрировано: BIGVAX
Это в запущенном FARе при ComSpec=C:\tcc.exe
Code: Select all
C:\{TMP}\far_renewal64>update.cmd
TCC: (Sys) C:\{TMP}\far_renewal64\update.cmd [11] Параметр задан неверно.
"fi"
C:\{TMP}\far_renewal64\update.cmd [11] Использование: TASKLIST [/= /C /D /L /M /N /O /P[n] /T /U["владелец"] /X /Z] [имя]
C:\{TMP}\far_renewal64\Far Manager\changelog
C:\{TMP}\far_renewal64\Far Manager\changelog_eng
C:\{TMP}\far_renewal64\Far Manager\Far.exe
Попытка доступа к ресурсу, занятому другим приложением
Это, при тех-же условиях: cmd.exe /c "C:\{TMP}\far_renewal64\update.cmd"
Code: Select all
C:\{TMP}\far_renewal64>cmd.exe /c "C:\{TMP}\far_renewal64\update.cmd"
C:\{TMP}\far_renewal64>set "FAR_PID=1592"
C:\{TMP}\far_renewal64>set "A=x64"
C:\{TMP}\far_renewal64>set "N=0"
C:\{TMP}\far_renewal64>set "G=next"
C:\{TMP}\far_renewal64>call :check_far
C:\{TMP}\far_renewal64>set /a "N=N+1"
C:\{TMP}\far_renewal64>if "1" == "11" set "G=kill" & goto :EOF
C:\{TMP}\far_renewal64>for /F %t in ('tasklist /nh /fi "PID eq 1592"') do set "t=%t"
TCC: (Sys) Параметр задан неверно.
"fi"
Использование: TASKLIST [/= /C /D /L /M /N /O /P[n] /T /U["владелец"] /X /Z] [имя]
Ошибка в синтаксисе команды.
C:\{TMP}\far_renewal64> if /i not "~0,3EOF
Т.е. сам вижу, что скрипт обрабатывается tcc.exe, хотя должен был быть отдан cmd.exe...
Почему так - не понимаю, ибо уже много лет как все настроено, что-бы .bat и .cmd обрабатывались cmd.exe, а tcc.exe обрабатывал-бы только .btm... Ж(
Renewal — автообновление Far и внешних плагинов
Posted: Sun 03 Jan, 2021 16:26
by 2useven10
bigvax, В последней версии Renewal батник сделан проще. Попробуйте его.
Если не будет работать, поставьте в начало батника руками ComSpec на cmd.exe (set ComSpec=....).
Я думаю батник запускается как надо (через cmd.exe), а вот то что запускается из него (tasklist) уже по ComSpec.
add: попробуйте заменить tasklist на tasklist.exe в update.cmd,
в новой версии ещё и findstr на findstr.exe
Renewal — автообновление Far и внешних плагинов
Posted: Sun 03 Jan, 2021 19:47
by 2useven10
Проверил сам. С .exe всё нормально обновляется из под TCC.
Как перезапустить фар под TCC не знаю, у меня настоен перезапуск через Far.lnk,
поэтому после обновления фар запустился в обычной консоли без TCC.
Сегодня обновлю плагин ещё раз - надеюсь будет работать и с TCC..
Renewal — автообновление Far и внешних плагинов
Posted: Sun 03 Jan, 2021 19:52
by 2useven10
Renewal — автообновление Far и внешних плагинов
Posted: Fri 08 Jan, 2021 07:54
by Pasha_ZZZ
Было бы замечательно, если бы при нахождении обнов где-то показывало, сколько "галочек" поставлено. Если плагов много и, например, верхний (допустим фар) к обновлению - непонятно, есть ли еще и внизу (за скроллом) обновы. Или перемещать все с обновами вверх.
А лучше и то, и другое.
Renewal — автообновление Far и внешних плагинов
Posted: Fri 08 Jan, 2021 10:17
by buniak_a_h
Pasha_ZZZ, А ещё лучше выставлять не флаг LIF_GRAYED а флаг LIF_HIDDEN.
Renewal — автообновление Far и внешних плагинов
Posted: Tue 12 Jan, 2021 18:21
by Pasha_ZZZ
buniak_a_h wrote: ↑Fri 08 Jan, 2021 10:17А ещё лучше выставлять не флаг LIF_GRAYED а флаг LIF_HIDDEN.
Поменял скрипт, добавил скрытие "серых" пунктов.
Первые 2 строки отвечают за автозакрытие диалога и скрытие серых строк соответственно.
Renewal — автообновление Far и внешних плагинов
Posted: Tue 12 Jan, 2021 20:03
by buniak_a_h
Pasha_ZZZ wrote: ↑Tue 12 Jan, 2021 18:21
buniak_a_h wrote: ↑Fri 08 Jan, 2021 10:17А ещё лучше выставлять не флаг LIF_GRAYED а флаг LIF_HIDDEN.
Поменял скрипт, добавил скрытие "серых" пунктов.
Первые 2 строки отвечают за автозакрытие диалога и скрытие серых строк соответственно.
А я уже сделал макрос (повесил на CtrlH) чтоб включать-выключать
:
local iItem = 2
local F = far.Flags
Macro{
id="4EB6F7FE-5884-40EE-9F61-24B411F8F902";
area="Dialog";
key="CtrlH";
description="сокрытие ";
flags="";
condition=function(key, data) return Dlg.Id == 'E3299E7A-1A22-47DD-B270-663BD2B74BCD' end;
action=function(data)
local hDlg = far.AdvControl("ACTL_GETWINDOWINFO").Id
local ListBox = hDlg:send("DM_GETDLGITEM", iItem)
local bWas = false
for i,v in ipairs(ListBox[6]) do
if band(v.Flags, F.LIF_GRAYED) == F.LIF_GRAYED then
v.Flags = bxor(v.Flags, F.LIF_HIDDEN)
bWas = true
end
end
if bWas then
hDlg:send(F.DM_LISTSET, iItem, ListBox[6])
end
end;
}
Renewal — автообновление Far и внешних плагинов
Posted: Tue 12 Jan, 2021 20:11
by buniak_a_h
Pasha_ZZZ wrote: ↑Tue 12 Jan, 2021 18:21
Поменял скрипт, добавил скрытие "серых" пунктов.
На самом деле не понял, о каком скрипте речь. Я запускаю плагин без скриптов…