Page 5 of 9

Переключение дисков по Ctrl/Alt/Shift+←/→

Posted: Fri 02 Nov, 2012 05:53
by IgorZ
Макрос написан по мотивам анси-плагина Change Active Drive by Ilya V. Gershman
Стрелки (или другие назначенные клавиши) в сочетании с LeftCtrl/LeftAlt/RightCtrl/RightAlt/Shift в указанных комбинациях меняют диск для левой/правой/активной/пассивной (в зависимости от настроек) панели. Замечания и предложения принимаются с благодарностью.


Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 24 Oct, 2014 18:52
by sToLp

Latest post of the previous page:

IgorZ wrote:Такая возможность есть.
Чудненько! Сразу настроил что хотел. Спасибо за подсказку!

При этом заметил маленький нюанс.
Пометка плагина знаком амперсанд "&" в меню макроса устанавливается и работает, а в меню выбора обрабатываемых плагинов не появляется, там плагин остаётся без пометки. С другими знаками такого пока не замечал.
Единственное ограничение: такие плагины выделены с помощью атрибута grayed, поэтому Enter на них не работает.
Хорошо бы после Ins дать возможность энтеру срабатывать, а то не интуитивно как то.

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 31 Oct, 2014 05:57
by IgorZ
Версия 3.0.4 - В меню настройки плагинов: символ пометки "&" корректно отображается, Enter отрабатывает в любой позиции.

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 31 Oct, 2014 19:43
by sToLp
Большое спасибо! Всё указанное вроде вполне работает.

Макрос легко настраивается даже для не посвящённого в премудрости программирования и мне он нравится на практике всё больше.

В частности, поскольку к меню плагинов обращения чаще чем к меню дисков Ctrl+стрелки перенастроил на плагины, а Alt+стрелки ― на диски. Запросто.


Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 14 Nov, 2014 10:10
by IgorZ
Версия 3.0.5 - Выбор символа плагина: при нажатии клавиш и комбинаций с длинными названиями (Ctrl, AltQ, etc) возникала ошибка. Исправлено.

На Ru.Board (в теме http://forum.ru-board.com/topic.cgi?forum=5&topic=31718) прочитал, что люди редактируют скрипт, отключая Ctrl/стрелки, чтобы они не мешали изменять размер панелей Far-а. Для тех, кто до сих пор не знает, подсказываю: для этого можно использовать стрелки на цифровой клавиатуре, причём даже в режиме ввода цифр. Кстати, кто там зарегистрирован, не сочтите за труд, пожалуйста, скопировать туда эту подсказку, на всякий случай.

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 14 Nov, 2014 10:20
by John Doe
Пункт в меню плагинов зачем-то добавляется и для диалогов (при этом не работает).
А в панелях неплохо бы обрабатывать Esc для отмены.
Кстати сейчас последовательность Esc Enter у меня почему-то гасит панели.

P.S.
И я вообще не очень понимаю какой сценарий применения при вызове из меню плагинов.
Какие преимущества перед AltF1/F2?

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 14 Nov, 2014 10:22
by IgorZ
John Doe wrote:Пункт в меню плагинов зачем-то добавляется и для диалогов (при этом не работает).
Тупо скопировал из другого, забыв, поправить. Уберу в следующей версии, так как не критично.
John Doe wrote:А в панелях неплохо бы обрабатывать Esc для отмены.
Ctrl+Esc и Alt+Esc обрабатывает сама Windows. Так что увы. Есть Home, возвращающий курсор на исходную позицию - чем не устраивает?
John Doe wrote:И я вообще не очень понимаю какой сценарий применения при вызове из меню плагинов.
Какие преимущества перед AltF1/F2?
Добавлял ради настроек, заодно и это сделал.

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 14 Nov, 2014 10:29
by John Doe
IgorZ wrote: Ctrl+Esc и Alt+Esc обрабатывает сама Windows. Так что увы
XKeys позволяет забрать у Windows эту привилегию.
Но при вызове из меню плагинов я не удерживаю ни Alt ни Ctrl, поэтому сейчас речь о просто Esc.
(и что за странный эффект при нажатии Esc Enter)

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 14 Nov, 2014 10:43
by IgorZ
John Doe wrote:
IgorZ wrote: Ctrl+Esc и Alt+Esc обрабатывает сама Windows. Так что увы
XKeys позволяет забрать у Windows эту привилегию.
Не пользуюсь им, так что даже забыл, что такой существует.
John Doe wrote:Но при вызове из меню плагинов я не удерживаю ни Alt ни Ctrl, поэтому сейчас речь о просто Esc.
Странно. Для вызова из меню обработка Esc сделана и работает. Только что ещё раз проверил.
John Doe wrote:(и что за странный эффект при нажатии Esc Enter)
Какой именно эффект? Подробнее, пожалуйста.

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 14 Nov, 2014 10:56
by John Doe
IgorZ wrote: Странно. Для вызова из меню обработка Esc сделана и работает. Только что ещё раз проверил.
Добавьте в условие такой макрос:

Code: Select all

Macro {
  area="Shell"; key="Esc";
  action=function()
    Keys "CtrlO"
  end;
}
Update: http://forum.farmanager.com/viewtopic.p ... 90#p125590

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 14 Nov, 2014 13:09
by HaRT
IgorZ wrote: люди редактируют скрипт, отключая Ctrl/стрелки, чтобы они не мешали изменять размер панелей Far-а. Для тех, кто до сих пор не знает, подсказываю: для этого можно использовать стрелки на цифровой клавиатуре
У меня, например, в „лучшие“ времена было настроено, чтобы стрелки цифровой клавиатуры задвигали панели в указанном направлении до упора (а обычные — штатно, на одну позицию). Т.ч. некоторая актуальность в упоминаемых правках всё же имеется.

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Sat 15 Nov, 2014 08:01
by sToLp
IgorZ wrote:Версия 3.0.5 - Выбор символа плагина: при нажатии клавиш и комбинаций с длинными названиями (Ctrl, AltQ, etc) возникала ошибка. Исправлено.
Спасибо!

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Mon 29 Dec, 2014 11:45
by IgorZ
Перед Новым Годом привожу выкладки в порядок.
Версия 3.0.6 - Esc - отмена выбора диска, Enter - переход на диск. Для нормального использования под Windows необходимо сочетать с XKeys или каким-то аналогом.

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Sun 01 Feb, 2015 22:31
by John Doe
В строке 272 скрипт пытается грузить все подряд плагины, что может приводить к ошибкам, в случае если плагин зависит от внешних библиотек, которые находятся в его папке.

Может попробовать вместо этого загружать плагины посредством FAR API, а далее GetModuleHandle + GetProcAddress?

Edit
John Doe wrote: загружать плагины посредством FAR API
Накладно это по ресурсам, и первая загрузка естественно тормозит...

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Tue 03 Mar, 2015 08:27
by John Doe
Вот такой код стабильно вызывает падение какого-либо плагина:

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Tue 03 Mar, 2015 09:27
by John Doe
Вот минимальный код для воспроизведения:

Code: Select all

local ffi = require"ffi"
local plugin = far.GetPlugins()[1]
local name = far.GetPluginInformation(plugin).ModuleName
ffi.load(name)
far.ForcedLoadPlugin("PLT_PATH",name)
collectgarbage()
far.GetPluginInformation(plugin)
Минимальный фикс: собрать мусор до реальной загрузки плагина фаром:

Code: Select all

local ffi = require"ffi"
local plugin = far.GetPlugins()[1]
local name = far.GetPluginInformation(plugin).ModuleName
ffi.load(name)
collectgarbage()
far.ForcedLoadPlugin("PLT_PATH",name)
far.GetPluginInformation(plugin)
Или же честно использовать LoadLibrary+GetProcAddress+FreeLibrary, как и рекомендовалось изначально.

Update: http://forum.farmanager.com/viewtopic.php?f=8&t=9393

Переключение дисков по Ctrl/Alt/Shift+<-/->

Posted: Fri 29 May, 2015 07:31
by IgorZ
Правка всё ещё требуется, или уже не актуальна в связи с исправлениями в Far-е?