Страница 121 из 243

Добавлено: Пн окт 03, 2022 20:15
sa
Loopback писал(а):- Tweaks: исправлена работа модификатора Alt в SetHotkeyAction
Подтверждаю: комбинации с Alt заработали.

Добавлено: Вт окт 04, 2022 14:09
Loopback
imig73
Спасибо. По закачке, видимо проблемы все же у конкретной программы, попробовал тем, что стояло (FDM) - качает без проблем. Да и 500кб, думаю, сейчас не так сложно скачать без загрузчика.

Добавлено: Ср окт 05, 2022 15:16
yozhik
Loopback

Спасибо за исправления! Я опять с простынёй, прошу снисходительности.

SetHotkeyAction в отношении прошлых замеченных шероховатостей теперь работает без запинки. Но срабатывает только КЗ:

Код: Выделить всё

SetHotkeyAction /K:C /K:S /H:N MsgBox "Message received"
А вот так не срабатывает:

Код: Выделить всё

SetHotkeyAction /K:C /K:S /H:N MsgBox("Message received")
Может так и должно быть?

SetMessageAction. Пример из справки

Код: Выделить всё

Func MyMessageFunc()
  MsgBox "Сообщение получено"
EndFunc
SetMessageAction 55555 MyMessageFunc
в связке с вызовом из TCFS2, вызываю кнопкой

Код: Выделить всё

TOTALCMD#BAR#DATA
%TCFS2%
/ef "msg(55555, 0, 0)"
%COMMANDER_ICONS%\bars.outline.software.dll,5
Debug SetMessageAction


-1
В 32-бит срабатывает только самый первый вызов: MsgBox появляется. При последующих вызовах MsgBox не появляется. И так до перезагрузки Windows. После перезагрузки опять 1й срабатывает, остальные нет.
При помощи au3-скрипта (из справки) я также пробовал вызвать: тот же результат.

А на 64-бит вызывает ошибку:

Код: Выделить всё

[284] SetMessageAction 55555 MyMessageFunc
Missing closing quote for string:
Следующий момент: если возможно, подскажите, пожалуйста, алгоритм действий. В TWinkey есть такая ф-ция NextQuickView, вот её описание:
Быстрый просмотр со следующим плагином
Чтобы при быстром просмотре в TC выбрать для файла под курсором следующий подходящий LS-плагин, приходится сначала переместить фокус из файловой панели в окно быстрого просмотра (на месте другой файловой панели), там нажать один или несколько раз клавишу 4, а для продолжения навигации по файлам снова вернуться в исходную панель. Предлагаемая функция позволяет во время быстрого просмотра переключаться с клавиатуры (например, той же клавишей 4) на другой подходящий плагин внутреннего просмотрщика, не покидая исходной файловой панели. Способ вызова команды NextQuickView определите на странице Клавиши и команды.
Я хочу попытаться средствами Autorun сделать подобное. Пока попытки не увенчались успехом. А делал я вот что: при помощи Spy++ посмотрел Message, высылаемый окну TC при нажатии 4 в QuickView. Получил:

Код: Выделить всё

S message:0x046A [User-defined:WM_USER+106] wParam:075BC371 lParam:0013EC80
безуспешно попытался воспроизвести:

Код: Выделить всё

# пробовал по отдельности, и КЗ
SetHotkeyAction /K:C /K:S /H:N SendMessage %AUTORUN_TCHANDLE% 046A 075BC371 0013EC80
# и ФЗ
SetHotkeyAction /K:C /K:S /H:N SendMessage(%AUTORUN_TCHANDLE%, 046A, 075BC371, 0013EC80)
Я понимаю, что как школьник вслепую тыкаю )) Но с другой стороны, лучше так, чем вообще никак. Подскажите, пожалуйста, правильно ли двигаюсь?
Чтобы хоть как-то разобраться, я попытался выслать Message при помощи TCFS2. На параметры "046A, 075BC371, 0013EC80" он заругался, а принял их пересчёт в Dec:

Код: Выделить всё

tcfs2.exe /ef "msg(1130, 123454321, 1305728)"
При вызове кнопкой этой команды в панели QuickView меняется заголовок (на кракозябр), т.е. видно, что что-то там передаётся и даже куда-то попадает, но не туда и не то, что нужно )) Из Autorun же вообще ничего не происходит.

Добавлено: Ср окт 05, 2022 19:42
Loopback
yozhik писал(а):А вот так не срабатывает:
Так получается смешивается КЗ с ФЗ. Если нужно именно в ФЗ выражение, придется через Eval:

Код: Выделить всё

SetHotkeyAction /K:C /K:S /H:N Eval 'MsgBox("Message received")'
yozhik писал(а):В 32-бит срабатывает только самый первый вызов: MsgBox появляется. При последующих вызовах MsgBox не появляется. И так до перезагрузки Windows. После перезагрузки опять 1й срабатывает, остальные нет.
У меня это выглядит по-другому, но да, тут баг.
yozhik писал(а):А на 64-бит вызывает ошибку:
У меня не появляется, но скорее всего это связано с тем же. И вот это:
В 32-бит работает до N раза. Нажимаю — открывает окно Конфигурация, как и должен.
вероятно тоже.
yozhik писал(а): что что-то там передаётся и даже куда-то попадает, но не туда и не то, что нужно
Скорее всего так не получится, по значениям wParam:075BC371 lParam:0013EC80 видно, что передаются какие-то указатели - структуры, строки или еще что-нибудь. Если еще раз получить сообщение с Spy++, они скорее всего будут другие. Так что мало отправить сообщение, надо точно знать, какие данные передаются. Хотя, даже если это будет точно известно, в Autorun нет возможности работать со структурами и не уверен что она появится.

Простейший способ представляется отправка нажатий клавиш, например скриптом Autoit:

Код: Выделить всё

Send("{TAB}4{TAB}")
Возможно, Send будет добавлен в Autorun, но пока только так.

Добавлено: Ср окт 12, 2022 13:14
sa
В Win10 Pro, TC 10.51x64 возникла проблема с закрытием окон TC, запущенных отдельным процессом. Можно проверить, вызвав поиск отдельным процессом (Alt+Shift+F7). При попытке закрытия окна появляется сообщение "(Не отвечает)". Воспроизводится, начиная с 2.2.8_beta. Причём в TC x32 всё нормально. Может кто-то подтвердить, или проблема только у меня?

P.S. Показалось, что вызывать поиск надо из папки самого запущенного тотала.

Добавлено: Ср окт 12, 2022 14:34
Monarch-LFV
sa
Подтверждаю, у меня такое же поведение на win7x64, TC10.51x64 (ровно как и TC10.52rc2x64), Autorun 2.2.8_beta.
При Autorun 2.2.7 - все нормально.

Добавлено: Ср окт 12, 2022 14:49
sa
Monarch-LFV
Да, в TC10.52rc2 у меня всё также, как в TC10.51, хотя поначалу полагал, что проблема в новой версии тотала.

Добавлено: Ср окт 12, 2022 14:54
imig73
sa
Так же подтверждаю и с Win10 21H2 (TC10.52rc2x64), Autorun 2.2.8_beta

Добавлено: Ср окт 12, 2022 20:03
jentoso
sa писал(а):В Win10 Pro, TC 10.51x64 возникла проблема с закрытием окон TC, запущенных отдельным процессом. Можно проверить, вызвав поиск отдельным процессом (Alt+Shift+F7). При попытке закрытия окна появляется сообщение "(Не отвечает)". Воспроизводится, начиная с 2.2.8_beta. Причём в TC x32 всё нормально. Может кто-то подтвердить, или проблема только у меня?

P.S. Показалось, что вызывать поиск надо из папки самого запущенного тотала.
У себя такое не воспроизвёл.
TC 10.51 combo, Win10 x64 21H2 19044.2075

Добавлено: Ср окт 12, 2022 21:48
Loopback
У меня как-то не особо проявляется, но причина вроде достаточно очевидна. Тут пока версия с исправлением, следующая версия будет позже.

Добавлено: Ср окт 12, 2022 22:17
sa
Loopback писал(а): Тут пока версия с исправлением
Помогло! Ранее выскакивавшее при некоторых условиях сообщение об ошибке (а-ля "Runtime error 204 at 000000000AA74B42") при запуске отдельными процессами синхронизации каталогов или сравнения по содержимому также исчезло. Спасибо!

Добавлено: Ср окт 12, 2022 22:24
imig73
Loopback
Во, поиск файлов отдельным процессом виснуть перестал. Оперативно, благодарю!
До исправления не модальные окна висли постоянно.

Добавлено: Чт окт 13, 2022 02:11
Monarch-LFV
sa
при запуске отдельными процессами синхронизации каталогов
Сорри за оффтоп. Что-то упустил я этот момент, а как вы запускаете синхронизацию каталогов отдельным процессом? Вроде бы параметров для нее нет, и окно модальное.

Добавлено: Чт окт 13, 2022 03:16
sa
Monarch-LFV
С помощью параметра командной строки:
/S=S     Запускает отдельным процессом инструмент синхронизации каталогов без открытия основного окна TC. В параметрах командной строки можно указать либо непосредственно два пути, либо шаблон в форме /S=S:имя_шаблона
Если параметр начинается со знака равенства "=" (например, /S=S:=имя_шаблона), сравнение начнётся сразу после открытия диалога. Если знак равенства указан без имени шаблона (т. е. /S=S:=), то для сравнения будут взяты каталоги, переданные через командную строку, и последние использовавшиеся настройки.
Примеры:
%commander_exe% /S=S:=имя_шаблона
%commander_exe% /S=S:= "c:\Dir1" "d:\Dir2"

Добавлено: Чт окт 13, 2022 04:27
imig73
Monarch-LFV

Код: Выделить всё

[em_SyncStandalone]
button=wcmicons.dll,48
cmd=%COMMANDER_EXE%
menu=Синхронизация каталогов отдельным процессом
param=/S=S "%X%P" "%T"