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

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
IgorZ
Posts: 513
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 21 times

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

Post by IgorZ » Fri 02 Nov, 2012 05:53

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

Attachments
CtrlAltMenuDisk.4.1.0.7z
Последняя версия
(17.89 KiB) Downloaded 47 times
Last edited by IgorZ on Fri 09 Feb, 2018 05:54, edited 6 times in total.

Max Rusov
Posts: 3631
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 10 times

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

Post by Max Rusov » Fri 02 Nov, 2012 07:10

Можно и наоборот:


Max Rusov
Posts: 3631
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 10 times

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

Post by Max Rusov » Fri 02 Nov, 2012 07:11

А вообще, для таких вещей как раз и нужно условие "If"...

IgorZ
Posts: 513
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 21 times

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

Post by IgorZ » Fri 02 Nov, 2012 07:19

Max Rusov wrote:Можно и наоборот:
Так бы и сделал, но GotoBookmark получает событие первым, и до моего макроса дело вообще не доходит. Возможно, нужный эффект можно получить с помощью приоритетов, но у меня не получилось.

Max Rusov
Posts: 3631
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 10 times

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

Post by Max Rusov » Fri 02 Nov, 2012 07:22

Надо было добавить "RCtrl:Up", правые модификаторы имеют приоритет.

IgorZ
Posts: 513
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 21 times

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

Post by IgorZ » Fri 02 Nov, 2012 09:04

Не знал. Учту, спасибо.

P.S. Скорректированный текст макроса в первом посте.

Max Rusov
Posts: 3631
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 10 times

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

Post by Max Rusov » Fri 02 Nov, 2012 10:23

Подглючивает. Предлагаю подправить:


IgorZ
Posts: 513
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 21 times

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

Post by IgorZ » Tue 06 Nov, 2012 05:09

Max Rusov wrote:Подглючивает. Предлагаю подправить:

Принято.

Скорректированный текст макроса в первом посте.

User avatar
ur4ltz
Posts: 76
Joined: Fri 08 Jan, 2010 14:07
Location: Харьков
Has thanked: 1 time

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

Post by ur4ltz » Mon 12 Nov, 2012 23:04

Макрос велеколепен!
Но вставлю свои 5 копеек, возможно сделать так чтобы он работал только если панели активные?

IgorZ
Posts: 513
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 21 times

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

Post by IgorZ » Tue 13 Nov, 2012 04:16

ur4ltz wrote:Макрос велеколепен!
Но вставлю свои 5 копеек, возможно сделать так чтобы он работал только если панели активные?
Не сильно ясно, зачем (плагин, как раз, работает и при отключённых), но пожалуйста. Соответствующая опция добавлена. Новая версия в первом посте. Заодно сделал Shift отключаемым, если кому мешает.

User avatar
ur4ltz
Posts: 76
Joined: Fri 08 Jan, 2010 14:07
Location: Харьков
Has thanked: 1 time

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

Post by ur4ltz » Thu 15 Nov, 2012 22:43

IgorZ wrote:
ur4ltz wrote:Макрос велеколепен!
Но вставлю свои 5 копеек, возможно сделать так чтобы он работал только если панели активные?
Не сильно ясно, зачем (плагин, как раз, работает и при отключённых), но пожалуйста. Соответствующая опция добавлена. Новая версия в первом посте. Заодно сделал Shift отключаемым, если кому мешает.
Не знаю как кому но мне нужно иногда в ком строке блок выделить, удалить или поправить, Shift=<> вот здесь макрос и (мешает) перекрывает стандарт!

IgorZ
Posts: 513
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 21 times

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

Post by IgorZ » Wed 19 Dec, 2012 10:26

v 2.0. Переделана логика (спасибо за Mouse.LastCtrlState). Теперь макрос вызывается и работает до конца, а не при каждом нажатии. Больше нет конфликта с Bookmark (c) Max Rusov и другими макросами, назначенными на отпускание одиночного модификатора. Мелкие правки. Сделана версия для чистого LuaMacro. Новые версии в первом посте даннной темы.

IgorZ
Posts: 513
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 21 times

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

Post by IgorZ » Mon 04 Feb, 2013 05:29

v2.1. Небольшая оптимизация алгоритма, переход с mf.* на стандартные средства Lua.

User avatar
John Doe
Бюрократ
Posts: 11715
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 24 times
Been thanked: 123 times

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

Post by John Doe » Mon 04 Feb, 2013 15:48

После завершения смены диска на погашенной панели - не происходит перерисовки.
Т.е. список дисков остаётся на экране.

P.S.
Мелочь конечно.
Но если обрабатывать эту ситуацию, то наверно стоит в этом случае включать панель.

User avatar
John Doe
Бюрократ
Posts: 11715
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 24 times
Been thanked: 123 times

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

Post by John Doe » Mon 04 Feb, 2013 16:48

Предлагаю улучшение: не пытаться менять диск, если выбранный совпадает с текущим.
(В противном случае теряется позиция и выделение в панели.)


Сюда же: если не удалось получить букву текущей панели, то отобразить её как "#"

User avatar
John Doe
Бюрократ
Posts: 11715
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 24 times
Been thanked: 123 times

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

Post by John Doe » Mon 04 Feb, 2013 16:54

Дополнительная фича: исключить из отображения диски, перечисленные в local ExcludeDisks="aey", для этого в цикл заполнения списка дисков добавить условие not ExcludeDisks:upper():find(string.char(i))

Post Reply

Return to “Полезные макросы и скрипты”