Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

yozhik писал(а):а где эта опция /O
Здесь и здесь (под другим флагом).
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

yozhik писал(а):Возможно ли это как-то отследить, чтобы при открытом меню хинт не всплывал?
Да, выглядит некрасиво, надо устранить.
yozhik писал(а):Где-то что-то я опять прозевал... а где эта опция /O ?
В ControlSetHint. Временно переводит фокус на подсказку, чтобы скрыть уже имеющуюся у контрола. Другого способа скрывать тоталовскую подсказку не нашел, и этот корявый. Малополезная, в общем, штука.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

sa писал(а):
yozhik писал(а):а где эта опция /O
Здесь и здесь (под другим флагом).
В ControlSetHint. Временно переводит фокус на подсказку, чтобы скрыть уже имеющуюся у контрола.
Спасибо. А то я что-то не понял о чем речь. Просто еше не использовал хинт на контроле с родной подсказкой.
Да, выглядит некрасиво, надо устранить.
А это можно сделать? Было бы супер.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

sa, Loopback,
спасибо! Действительно прозевал, потому что тот пост я помню, но от последней строчки сознание избавилось путём временного перевода фокуса на предпоследнюю :) Теперь и сюда добавил, чтобы всё в одном месте было.
Amo ergo sum
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Loopback писал(а):Кроме того с опцией /O работать не будет.
Вроде, работает /R и в этой комбинации.
Аватара пользователя
jentoso
Сообщения: 443
Зарегистрирован: Чт дек 20, 2007 01:36

Сообщение jentoso »

В одной сборке подсмотрел конфиг для просмотра файла средней кнопкой мыши
[cut]

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

ControlSetMouseAction /M 1 OpenDirInNewTabElseEnter
ControlSetMouseAction /M 2 OpenDirInNewTabElseEnter

Func OpenDirInNewTabElseEnter
   I = ItemAtCursor('index')
   If I >= 0 Then
      F = RequestInfo(1010 + ItemAtCursor('panel'))
      If ItemAtCursor('panel') <> RequestInfo(1000) Or Not ItemAtCursor('focused') Then MouseClick
      If ItemAtCursor('focused') Then
         If F > I Or F = -1 Then
            SendCommand 3003
         Else
            Switch StrLower(StrRight(StrPart(ItemAtCursor('text'), auTAB, 1), 4))
			   Case '.exe', '.bat', '.cmd', '.lnk'
			      CommandExec em_startelevated
               Case '.ps1'
                  ShowPopupMenu /I:16 '%commander_path%\Buttonbar\PS.BAR'
			   Case '.ISO', '.NRG', '.MDS', '.MDF', '.CCD', '.IMG'
                  ShowPopupMenu /I:16 '%commander_path%\Buttonbar\CD.BAR'
			   Case '.WIM'
                  ShowPopupMenu /I:16 '%commander_path%\Buttonbar\WIM.BAR'
			   Else
			      SendCommand 903
            EndSwitch
         EndIf
      EndIf
   Else
      SendCommand 526
   EndIf
EndFunc
[/cut]
Убрал из конфига не нужный функционал, но никак не мог сообразить, как оставить срабатывание только для файлов и не треготь папки.
[cut]

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

ControlSetMouseAction /M 1 OpenLister
ControlSetMouseAction /M 2 OpenLister

Func OpenLister
   I = ItemAtCursor('index')
   If I >= 0 Then
      F = RequestInfo(1010 + ItemAtCursor('panel'))
      If ItemAtCursor('panel') <> RequestInfo(1000) Or Not ItemAtCursor('focused') Then MouseClick
      If ItemAtCursor('focused') Then
         If F > I Or F = -1 Then
            SendCommand 903
         Else
            SendCommand 903
         EndIf
      EndIf
   EndIf
EndFunc
[/cut]
В итоге такое решение сработало. Теперь просмотр по СКМ только на файлах срабатывает.
[cut]

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

Func OpenLister
   I = ItemAtCursor('index')
   If I >= 0 Then
      F = RequestInfo(1010 + ItemAtCursor('panel'))
      If ItemAtCursor('panel') <> RequestInfo(1000) Or Not ItemAtCursor('focused') Then MouseClick
      If ItemAtCursor('focused') Then
         If F <= I And F > -1 Then SendCommand 903
      EndIf
   EndIf
EndFunc
[/cut]

P.S. Поправил отступы.
Последний раз редактировалось jentoso Пн июн 03, 2024 21:17, всего редактировалось 2 раза.
TC 11.58 combo, Windows 11 x64
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

jentoso писал(а):В одной сборке подсмотрел конфиг для просмотра файла средней кнопкой мыши
Интересный фрагмент. Только почему вы в своих вариантах не поставили отступ? :)
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Версия Tweaks от [url=https:///total.darkhost.ru/files/temp/tweaks_20240602.zip]02.06.2024[/url]
Изменения минимальны, только устранено всплывание подсказки после вызова меню.
sa писал(а):Вроде, работает /R и в этой комбинации.
Да, оказывается для контролов не имеющих своей подсказки работает, но там этот костыль и не нужен. Я тестировал на панели дисков, контролы номер 24, 25, не работает.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Loopback писал(а):тестировал на панели дисков, контролы номер 24, 25, не работает
Подтверждаю, я оказывается, проверял контрол 0 с /H:8 (Свернуть) или /H:16 (Свернуть в окно).

P.S. Заметил, что родная подсказка TC на кнопках панели дисков ведёт себя в точности, как на кнопках панели инструментов: она не исчезает при перемещении мышки, пока её указатель находится в пределах кнопки.
Последний раз редактировалось sa Вт июн 04, 2024 10:23, всего редактировалось 1 раз.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Loopback писал(а):устранено всплывание подсказки после вызова меню
Всё замечательно, спасибо, теперь они взаимодействуют корректно, гладко.
Amo ergo sum
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Loopback писал(а):Версия Tweaks от [url=https:///total.darkhost.ru/files/temp/tweaks_20240602.zip]02.06.2024[/url]
Изменения минимальны, только устранено всплывание подсказки после вызова меню.
У меня не работает на заголовке, или оно там и не должно работать?

Ещё один вопрос всем, кто знает: А разве в MNU файле не возможности вызвать em_ команду с параметрами? Что-то я не нашел как передать параметр %A через MENUITEM, а хотелось бы... очень.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Orion9 писал(а):У меня не работает на заголовке, или оно там и не должно работать?
Да, собирался сделать для обеих веток (ShowPopupMenu и остальное) и забыл перенести код. Не буду делать новый релиз, заменил файлы во вчерашнем, можно скачать по той же ссылке.
Orion9 писал(а):А разве в MNU файле не возможности вызвать em_ команду с параметрами?
Вроде никогда не было. Параметр %A нужно просто поместить в параметры самой em_ команды.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Loopback писал(а):заменил файлы во вчерашнем
Теперь и в заголовке всё работает корректно. С багом покончено!:)
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

Loopback
Однозначно стало лучше. :) Заметил, правда, один небольшой побочный эффект (хотя, может, просто показалось). Если вызывать меню по Alt клику, то оно тут же закрывается, если Alt не отпустить.

Что касается параметра %A, то есть 10 однотипных пунктов меню, которые отличаются лишь числами в передаваемых параметрах wParam и lParam
[cut]Gimme back the good ol' days :mrgreen:
viewpost.php?p=136822[/cut]
Сам пункт выглядит где-то так:

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

   txt = txt & 'MENUITEM "Time - ' & ShowTime & '", em_title_reboot1' & auCRLF
Но не хотелось бы делать 10 однотипных команд em_title_reboot1, em_title_reboot2, em_title_reboot3 и т.д. Некрасиво это. А передать параметр из меню в одну команду em_title_reboot тоже не получается, как я понимаю.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Orion9
Обнаружились отголоски проблемы с исчезновением в заголовке номера копии при перезапуске TC (cm_exit 9).
Решение с добавлением Sleep(250) в начало autorun.cfg может приводить к неприятным последствиям.
Например, добавим в autorun.cfg после начальной строки Sleep(250) ещё одну:

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

IniWrite %COMMANDER_INI% Configuration RenameSelOnlyName 0
Через "Настройку --> Основные функции" установим в TC (на время сеанса) поведение "При переименовании выделять только имя файла (но не расширение)" и затем перезапустим программу с надеждой, что вернётся режим по умолчанию.
TC, видимо, успевает прочитать секцию конфигурации со значением RenameSelOnlyName=1 и установить поведение, как в предыдущем сеансе, несмотря на то, что плагин запишет (заведомо после 250 миллисекунд) новое значение 0 - для режима выделения имени вместе с расширением (по умолчанию).
Если строки IniWrite и Sleep поменять местами, то всё работает верно.
Ответить