EMenu: Explorer Context Menu — Контекстное меню Проводника

Здесь можно обсудить ваш любимый плагин.
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by Dec »

Latest post of the previous page:

Taciturn, меню для файлов из разных папок - это меню, которое вызывается на результатах поиска?
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by Taciturn »

Wave wrote: Fri 24 Nov, 2017 16:40Чисто случайно: не запускаете ли вы 32x FAR на 64x Windows?
Нет, 64 на 64.
Dec wrote: Fri 24 Nov, 2017 21:25Taciturn, меню для файлов из разных папок - это меню, которое вызывается на результатах поиска?
Да. В Explorer всё Ok, в Far, из временной панели, плагин пишет что это невозможно.
Last edited by Taciturn on Sun 26 Nov, 2017 18:47, edited 1 time in total.
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by Dec »

Taciturn wrote: Sun 26 Nov, 2017 18:45В Explorer всё Ok
Предполагаю следующее. Вся работа с файлами в Explorer происходит через namespace extensions, то бишь через работу с IShellFolder. В ситуации, когда в Explorer происходит вызов контекстного меню, то происходит вызов IShellFolder.GetUIObjectOf(IContextMenu). IShellFolder определяет одну конкретную физическую или виртуальную директорию, и соответственно невозможно стандартными путями получить контекстное меню для нескольких файлов, расположенных в разных директориях. В случае поиска в Explorer создается виртуальная папка с содержимым поиска, у этой папки есть свой личный IShellFolder, у которой и запрашивается контекстное меню. Т.е. контекстное меню на результатах поиска это не меню физической директории, а меню виртуальной папки. Не думаю, что в EMenu можно реализовать обращение к IShellFolder такой виртуальной папки. Но теоретически можно эмулировать поведение Explorer и самостоятельно строить такое меню. Относительно геморно, но реализуемо.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by HaRT »

Dec wrote: Mon 27 Nov, 2017 09:38В случае поиска в Explorer создается виртуальная папка с содержимым поиска, у этой папки есть свой личный IShellFolder, у которой и запрашивается контекстное меню.
А что мешает и EMenu создавать виртуальную папку с выделенными элементами в момент вызова?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Dec
Posts: 67
Joined: Wed 14 Jul, 2010 08:59
Been thanked: 3 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by Dec »

HaRT wrote: Mon 27 Nov, 2017 13:39А что мешает и EMenu создавать виртуальную папку с выделенными элементами в момент вызова?
Вероятно, отсутствие документированного способа сделать это.
Xhronos
Posts: 59
Joined: Mon 09 Apr, 2018 10:22
Been thanked: 1 time

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by Xhronos »

Есть пара вопросов.
1. Почему в каталоге \Windows\Fonts\ EMenu сообщает что не удалось показать меню?
2. Почему при попытке вызвать контекстное меню в архиве Far оказывается скорее мертв чем жив? Вопрос снят. После обновления Far до 5261 выдаётся предупреждение как в п. 1.
Last edited by Xhronos on Thu 23 Aug, 2018 14:15, edited 1 time in total.
dest
Posts: 106
Joined: Mon 29 Jun, 2015 01:30
Has thanked: 18 times

EMenu: вызов стандартного меню портит панели

Post by dest »

При вызове правой кнопкой мыши (или кнопкой на клавиатуре, её заменяющую) системного меню Windows панель, нижний ряд кнопок сдвигаются вверх (визуально) и замусоривается надписями "Marker : e0 14" от 1-2+ штук. Верхняя ограничительная полоса панели из псевдографики перекрывается сдвинутой картинкой, визуально позиции файлов перестают соответствовать реальному положению файлов. Если кликнуть по какому-либо файлу, оказывается что под нарисованным другой файл (находящийся строкой выше). Удалось воспроизвести проблему на файлах .jpg, и проявляется далеко не на всех и не всегда. Установить, что именно приводит к багу, не удалось.
Глюк появляется в связке с плагином ConEmu. Надпись у командной строки может быть "Marker : e1 22", "Marker : ec 15", "Marker : ee 12", "Marker : e1 4218", "Marker : e1 2870", "Marker : e1 4182", "Marker : e1 2582", "Marker : e1 24582", "Marker : e1 2904" и другие.
Локализованный плагин с багом - стандартный EMenu.
Last edited by dest on Mon 24 Dec, 2018 22:33, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

EMenu: вызов стандартного меню портит панели

Post by HaRT »

dest wrote: Mon 24 Dec, 2018 22:32 Локализованный плагин с багом - стандартный EMenu.
Плагин не виноват, ConEmu ни при чём. Это одно из установленных у вас в системе расширений контекстного меню (XnView или ему подобное) гадит в консоль. Можете, например, с помощью Sysinternals Autoruns выявить это расширение и пожаловаться его авторам. И если это не XnView, то не забудьте, пожалуйста, тут отписаться, что за программа.

03:09 MSK
Виновник найден:
dest wrote: Tue 25 Dec, 2018 00:46 SageThumbs - он обрабатывает картинки
Last edited by HaRT on Tue 25 Dec, 2018 01:09, edited 1 time in total.
Reason: Добавлен абзац про виновника
Фар есть инструмент, а не нянька. © 2009 DrKnS
dest
Posts: 106
Joined: Mon 29 Jun, 2015 01:30
Has thanked: 18 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by dest »

HaRT wrote: Mon 24 Dec, 2018 22:58...ConEmu ни при чём. Это одно из установленных у вас в системе расширений контекстного меню...
По поводу контекстного меню - переименовал в реестре сначала обработчики для всех файлов - глюк "выжил", затем переименовал вообще реакцию на все файлы "*" - глюк выжил. Для .jpg/jpegfile никаких дополнительных обработчиков не обнаружил. Посмотрел в процесс мониторе к чему обращается система при ПКМ - переименовал SendTo - винда оказалась хитрее меня, смотрела ссылки в переименованной директории (! честно говоря, в этот момент я подохренел, хоть и видал ну очень много - какое-то око саурона). Далее вынес SendTo на другой диск - в этот раз винда обломилась. Глюк продолжал жить. Снова посмотрел в процесс монитор - масса вызовов разных библиотек, от TortoiseGit, PHP Composer и прочие... но глаза вцепились в SageThumbs - он обрабатывает картинки (странно, что глюки проявляются только на jpg, хотя может недостаточно кликал?). В настройках SageThumbs отключил интеграцию в контекстное меню. Поклацал пару минут по жпегам - глюка нет. Включил интеграцию - глюк есть. Выключил снова - нет. Эксперимент можно сказать завершённым.
Хотя может у кого ещё какие идеи? А пока пойду напишу автору о глюке.

ЗЫ: ConEmu я исключил в самом начале, сузив всё до первичной реакции на ПКМ (оказался единственный плагин) и начав с него, хотя именно на обработчики самого меню тоже следовало обратить бы пристальное внимание... но то, что проблема проявлялась только в фаре и более нигде и никогда, заставило думать на плагин к фару.
lvm
Posts: 58
Joined: Thu 13 Sep, 2018 12:48

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by lvm »

Открыл для себя этот плагин, есть вопросы:

Настройка "menu position" не оказывает никакого эффекта, меню прыгает по экрану, в центре открываться не хочет. Я что-то делаю не так?

Иногда меню получается скроллируемым, хотя места на экране более чем достаточно, чтобы показать его полностью, например, меню в 27 строк - 23 значащих строки и разделителей и 4 - рамки в окне высотой 36. Кмк оно обрезается под старые добрые досовские CGAшные 25.

Ну и самое главное - как его вызвать с клавиатуры так, чтобы он вызвался для файла под обычным клавиатурным курсором? Создание макроса через ^. привело к тому, что меню с клавы вызывается, да, но для файла под мышиным курсором.

3.0.0 (build 65)
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by DrKnS »

Дистрибутивные настройки и макросы отображают меню в центре экрана при вызове клавиатурой и в позиции мышиного курсора при вызове мышью.
Вызов "под обычным клавиатурным курсором" не поддерживается, т.к. в общем случае это нетривиальная задача.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by HaRT »

lvm wrote: Fri 07 Jun, 2019 07:17 Иногда меню получается скроллируемым, хотя места на экране более чем достаточно
Я такого не наблюдал. Можете найти стабильные шаги воспроизведения?
Фар есть инструмент, а не нянька. © 2009 DrKnS
lvm
Posts: 58
Joined: Thu 13 Sep, 2018 12:48

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by lvm »

DrKnS wrote: Fri 07 Jun, 2019 09:10 Дистрибутивные настройки и макросы отображают меню в центре экрана при вызове клавиатурой и в позиции мышиного курсора при вызове мышью.
Я правильно понимаю, что в плагине есть настройка центр/мышь, но мы ее специально игнорируем, но настройку оставляем, чтобы всех запутать?
Вызов "под обычным клавиатурным курсором" не поддерживается, т.к. в общем случае это нетривиальная задача.
А что там такого нетривиального? В худшем случае, это может быть не файл на файловой системе - ну и что? Правой мышью я тоже могу куда угодно кликнуть, и получаю при этом вполне ожидаемое "can't show menu"
HaRT wrote: Fri 07 Jun, 2019 12:28 Я такого не наблюдал. Можете найти стабильные шаги воспроизведения?
Это не 25 символов, похоже, виновата попытка открыть окно в месте клика (несмотря на то, что включено открытие в центре): если кликнуть правой мышью по файлу в центре окна, и меню будет выше, чем половина окна, то оно не влезет, ужмется и станет скроллируемым.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by HaRT »

lvm wrote: Fri 07 Jun, 2019 13:05 есть настройка центр/мышь, но мы ее специально игнорируем
Нет, просто эта настройка относится только к текстовому меню. (Я только что проверил — у меня работает ожидаемо.) Графическое меню открывается всегда возле мыши.
lvm wrote: Fri 07 Jun, 2019 13:05 А что там такого нетривиального? В худшем случае, это может быть не файл
Я так понимаю, что имелась в виду какая-то сложность с выяснением позиции. Впрочем, какая именно, я тоже что-то не соображу.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by DrKnS »

lvm wrote: Fri 07 Jun, 2019 13:05 Я правильно понимаю, что в плагине есть настройка центр/мышь, но мы ее специально игнорируем, но настройку оставляем, чтобы всех запутать?
Ну если вам удобнее думать о такой мотивации - да.
В худшем случае, это может быть не файл на файловой системе - ну и что?
Не совсем понимаю, о чём процитированное. Я говорил о позиции меню относительно курсора на панели, координаты которого, в общем случае, неизвестны.
Для вызова плагина с клавиатуры есть макрос в дистрибутиве, Hotkey.lua.
lvm
Posts: 58
Joined: Thu 13 Sep, 2018 12:48

EMenu: Explorer Context Menu — Контекстное меню Проводника

Post by lvm »

HaRT wrote: Fri 07 Jun, 2019 13:11 lvm wrote: ↑
Fri 07 Jun, 2019 15:05
есть настройка центр/мышь, но мы ее специально игнорируем

Нет, просто эта настройка относится только к текстовому меню. (Я только что проверил — у меня работает ожидаемо.) Графическое меню открывается всегда возле мыши.
Нет, я именно о текстовом, у меня оно в центре мышью не открывается, несмотря на то, что в настройках плагина стоит открывать в центре.

Но самое главное, способ вызвать контекстное меню с клавиатуры и для файла под клавиатурным курсором таки есть: в меню плагинов по F11 выбрать Emenu (лучше назначить ему хоткей, чтобы не сползло от добавления других плагинов) еще несколько шагов по его меню, которые, надеюсь, не будут слишком часто меняться - и результат достигнут.
Last edited by lvm on Fri 07 Jun, 2019 13:47, edited 1 time in total.
Post Reply

Return to “Обсуждение плагинов”